テキストファイル


 テキストファイルを開くには

ファイルはビルトインオブジェクトとして定義されています。ファイルオブジェクトは、ビルトイン関数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."