2016-06-30 4 views
-5

新しいファイルを開き、そのファイルにすべてnの値を書き込もうとしています。新しいファイルに整数を書き込む

for n in [4, 7, 8, 10, 6, 3, 5, 13]: 
    if n > 5: 
     print(n) 
b = open('new', 'w') 
b.write(n) 

それは文字列としてで数字を書き込み、唯一13に書いて、最後n

+0

「書き込み」を意味する「w」でファイルを開いていると思います。以前の書き込みを上書きしていると思います。 appendのために 'a'を試してください。 –

+2

また、ループ**の外で**完了したらそれをやっています。 – jonrsharpe

+1

[ファイルをPythonでどのように追加するのですか?](http://stackoverflow.com/questions/4706499/how-do-you-append-to-a-file-in-python) –

答えて

-1

あなただけの最後の値を印刷しています。だからあなたは結果を得るだけです13。あなたはforループの値を書かなければなりません。

b = open('new', 'w') 
for n in [4, 7, 8, 10, 6, 3, 5, 13]: 
    if n > 5: 
     print(n) 
     b.write(n) 
+0

'write () 'は文字バッファオブジェクトを期待し、ファイルを閉じていなくてもローカルで実行してから投稿します! – wolframalpha

+0

ありがとうございます。 – Ben

1

修正コード:

with open('new', 'w') as outfile: 
    for n in [4, 7, 8, 10, 6, 3, 5, 13]: 
     if n > 5: 
      print(n) 
      outfile.write(str(n)) 

か(推奨しない)

for n in [4, 7, 8, 10, 6, 3, 5, 13]: 
    if n > 5: 
     print(n) 
     b = open('new', 'a') # append mode 
     b.write(str(n)) 
     b.close() 
関連する問題