writelines()`は改行文字を挿入しないので、リストをファイルに書き込むにはこの方法が一番きれいですか?
file.writelines(["%s\n" % item for item in list])
標準的な方法があるように思えるのですが...。
ループを使うことができます。
with open('your_file.txt', 'w') as f:
for item in my_list:
f.write("%s\n" % item)
また、Python 2では
with open('your_file.txt', 'w') as f:
for item in my_list:
print >> f, item
1回の関数呼び出しにこだわるのであれば,少なくとも角括弧 []
を削除して,出力される文字列が1つずつ作成されるようにしてください(リストコンプではなくゲンエクス) -- 文字列のリスト全体を作成するのに必要なメモリをすべて占有する必要はありません。
そのファイルで何をしようとしているのか?このファイルは、人間や、相互運用性が明確に求められる他のプログラムのために存在するのでしょうか?
もし、同じpythonアプリで後で使えるようにリストをディスクにシリアル化しようとしているだけなら、リストを[pickleing][1]するべきです。
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
それを読み返すには
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
もっとシンプルな方法は
``lang-python outfile.write("̫⃝".join(itemlist))
ジェネレータ式を使って、アイテムリストのすべてのアイテムが文字列であることを保証することができます。
``lang-python
outfile.write("\n".join(str(item) for item in itemlist))
すべての itemlist
リストはメモリ上に存在する必要があるので、メモリの消費量に注意してください。