テキストファイル
テキストファイルを開くには
ファイルはビルトインオブジェクトとして定義されています。ファイルオブジェクトは、ビルトイン関数openで作成(開く)されます。この関数は結果として開いたファイルオブジェクトを返します。
open (filename[, mode[, bufsize]])
ファイル名(filename)には有効なパス名を設定します。
modeは読み出しの場合は"r"、書き込みの場合は"w"、追加の場合は"a"を指定できます。更新の場合は"r+"、"w+"、"a+"と明示できます。なお、"r"の場合は省略可能です。
バッファサイズ(bufsize)は、0, 1、その他の値(2など)を指定します。0はバッファリングなし、1はラインバッファリング、その他は具体的なバッファサイズと解釈されます。
ファイルを閉じるにはファイルオプジェクトのcloseメソッドを使います。
文字列をファイルから読むメソッドはread、readline、readlinesが用意されています。
read([size])
sizeで指定したバイト数だけファイルから読む。省略したときまたは負数の場合は、ファイルの残りすべてのバイトを読む。
readline([size])
sizeが省略されたときは、1行の文字列を読む。sizeが指定されたときは、その行を指定バイト数だけ読む。
readlines([sizehint])
sizehintが省略された場合、EOFまでreadlineを繰り返し、結果としてリストを返す。sizehintが存在するときは、そのバイト数だけreadlineを繰り返す。
サンプル
# Text file(c:\autoexec.bat) read try : f = open("C:/temp/text1.txt") while 1 : s = f.readline() if s == "" : break print s f.close() print "[eof]" except : print "file error." |
EOFはreadlineの結果として""が返されたことで判別します。
文字列をファイルに書くには
文字列をファイルに書くメソッドは、writeとwritelinesが用意されています。
write(str)
文字列strをファイルに書きます。改行文字が必要なときは"\n"をstrの最後に追加して実行します。
writelines(list)
文字列のリストをファイルに書きます。
文字列を書き終わったら、必ずcloseかflushメソッドを実行します。そうしないと、結果がファイルに反映されません。
サンプル
# Write a text file try : f = open("text1.txt", "w") f.writelines(["ABC\n", "XYZ"]); f.close() except : print "file error." |