2016-04-07 38 views
-1
while iter < 10: 
    //do some things(actual code is too long to post) 
     iter += 1 

    for line in code.splitlines(): 
     file = open("tile.txt", "w+") 
     file.write(line) 
     print(" "+line) 

私は最後にこのループを使用していますが、コマンドラインに変数 "line"を出力すると完全に動作します。しかし、whileループのすべての反復で "line"のすべての値をファイルに書きたいと思っています。私の問題は、最後の反復で行の値を書き出すことだけです。どんな助け?ファイルに書き込むpython

答えて

2

ファイルを追加モードで開く必要があります。また、ブロックの最後にファイルを閉じます、あなたがより良いのファイルを開くためのwithステートメントを使用するファイルを扱うためのより多くの神託の方法として:

with open("tile.txt", "a+") as f: 
    for line in code.splitlines(): 
     f.write(line + '\n') # Add new line at the end of each line 
     print(" "+line) 

また書くためにfile.writelines()方法を使用することができますファイル内に複数の行を同時に表示することができますが、その場合でも引き続きw+モードを使用できます。

+0

'f.write(line)'は末尾に改行文字を追加しないので、すべての行を改行したい場合は 'f.write(line + '\ n')' –

+0

@タイラーはい、ありがとうございました。一定。 – Kasramvd

1

あなたはループの外のファイルを一度に開く必要があります。

file = open("tile.txt", "w+") 
while iter < 10: 
    //do some things(actual code is too long to post) 
     iter += 1 

    for line in code.splitlines(): 
     file.write(line) 
     print(" "+line) 
1

あなたが回線を通じてITERたびに、それはあなたではなく、それに追加するよりも書いてきた以前の値上書き:

file = open("tile.txt", "w+") 
for line in code.splitlines(): 
    file.write(line) 
    print(" "+line) 

を上記のコードはすべての行を与える必要があります。ファイルを開き、ループ内ですべての値がファイルに書き込まれます。ループが終了したら、ファイルを閉じて結果を取得する必要があります。

file.close() 
関連する問題