2016-06-30 51 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',意思是「寫」,而你覆蓋以前寫你做的那個文件。嘗試一下'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()