2016-08-29 7 views
0

は、私は次のリスト持っている:リストの各要素をテキストファイルの各行に書き込むにはどうすればよいですか? Pythonの使用

data = ['element0', 'element1', 'element2', 'element3'] 

をそして私は「myfile.txtの」の新ラインに、各要素を書きたいので、私はこのしようとしてきた:

私は、この(内部の「myfile.txtの」)を与える
for x in data: 
    open("myfile.txt", "w").write(x + "\n") 

:私はそれがループを通過するたびのように見えます

element3 

は、それが最後の一番上に要素を書き込みます。

望ましい結果(内部の "myfile.txtの"):

with open("myfile.txt", "w") as fobj: 
    for x in data: 
     fobj.write(x + "\n") 

私はコンテキストマネージャとしてファイルを使用しています:

element0 
element1 
element2 
element3 

答えて

4

ちょうどファイルオブジェクト一度開きますこれをwithステートメントに渡します。これにより、コードブロックが終了した後でファイルが再び閉じられるようになります。

'w'(書き込み)モードでファイルオブジェクトを開くたびに、ファイルはが切り捨てられ、が空になります。ファイルが切り捨てられないように、'a'(追加)モードを使用する必要があります。

ただし、ファイルを一度開くとはるかに効率的です。

関連する問題