2016-08-22 52 views
1

首先,代碼獲取一個名稱並創建一個具有w權限的文件(也測試了r+),它應該在文件中寫入任何其他輸入,但它不會。我收到一個空文件。Python腳本創建一個文件,但不寫任何東西

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 
+2

你試過用'open(fname,'w')作爲ufile:ufile.write(f)'? – Xevaquor

+3

添加'ufile.close()',看看是否修復它。 –

+3

@瘋狂的你還是得'沖洗'這個文件。總是使用'with'來處理文件。 –

回答

5

正如我在評論中寫道,始終使用with塊,因爲它需要小心處理的文件錯綜複雜,你不必擔心。現在在代碼中,你重複自己,例如前兩行實際上是一個..這就是它在清理一下時的樣子。

fname = input("gets Input") 
with open(fname, "w") as ufile: 
    f = input('write something') 
    ufile.write(f) 

正如別人也注意到了,answer是從未宣佈過,也沒有終止條件和輸入提示或者是不是最好的或者完全不存在。

+0

工作的必要部分,我不知道「與」,謝謝。 – GeekyMo

+0

答案是在其他地方聲明的,我在程序的字符串管理部分聲明瞭它。 – GeekyMo

1

此代碼的工作對我來說:

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 

一些注意事項: 我看不出答案聲明,無論是Python解釋器看到:P,也許你忘了粘貼此部分的代碼或事實上這是錯誤?

我不明白你爲什麼將文件的名稱分配給一個變量,然後重新分配給另一個。

如何停止寫入文件?我發現的唯一方法是Ctrl-C,這聽起來並不理想。

安撫文件被關閉時,您可以用開放(FNAME)取代它成爲ufile

+0

f變量得到相同的使用,並在優化的最終代碼將被修復。有,如果在這將打破循環。我只是放置了代碼 – GeekyMo

相關問題