ループ上で関数を実行したいのですが、ファイル名にループ変数が含まれるように、出力を別のファイルに保存したいと考えています。ここに例があります
for i in xrange(10):
f = open("file_i.dat",'w')
f.write(str(func(i))
f.close()
どうすればPythonでそれを行うことができますか?
+
とでファイル名を作成するだけですstr
。必要に応じて、古いスタイルまたは新しいスタイルのフォーマットを使用してファイル名を作成することもできます。
"file_" + str(i) + ".dat"
"file_%s.dat" % i
"file_{}.dat".format(i)
現在のバージョンではエンコーディングが指定されておらず(必要があります)、エラーが発生した場合にファイルを正しく閉じないことに注意してください(with
ステートメントがそれを行います)。
import io
for i in xrange(10):
with io.open("file_" + str(i) + ".dat", 'w', encoding='utf-8') as f:
f.write(str(func(i))
次のように、変数を文字列に連結しi
ます。
f = open("file_"+str(i)+".dat","w")
また
f = open("file_"+`i`+".dat","w") # (`i`) - These are backticks, not the quotes.
利用可能な他のテクニックについては、ここを参照してください。
を使用しf = open("file_{0}.dat".format(i),'w')
ます。実際にはf = open("file_{0:02d}.dat".format(i),'w')
、名前をゼロで埋めて2桁に保つようなものを使用することをお勧めします(したがって、後で並べ替えるのに便利な「file_1」ではなく「file_01」を取得します)。ドキュメントを参照してください。
これを試して:
for i in xrange(10):
with open('file_{0}.dat'.format(i),'w') as f:
f.write(str(func(i)))