2012-10-19 93 views
1

我有一個python腳本,它將創建一個文本文件,然後在這個新創建的文件上運行一個命令。python不識別新創建的文件

問題是命令行不能識別新創建的文件,並且出現文件爲空的錯誤。

我的代碼是這樣的:

randomval是將創建隨機字符,並返回它們作爲一個字符串的函數。

text_file = open("test.txt", "w") 
text_file.write(randomval(20,10)) 


# do something with the `test.txt` file 

但我收到一個錯誤,文件test.txt爲空。

有沒有辦法解決這個問題?

+3

你關閉文件'text_file.close()' – avasal

+0

嗯,不..實際上這解決了我的問題:)謝謝 – ifreak

+3

雖然我們在這,你應該總是使用'與開放(...)作爲text_file:'因爲在這種情況下你不能忘記關閉它,它實際上更容易,即使發生異常或非平凡控制流,它也能正常工作。 – delnan

回答

2

你應該,至少,試圖做一些與你的新文件(text_file.flush())之前刷新緩衝區。最好的辦法是關閉文件並在需要時重新打開文件。

1

該文件的流仍然是打開的!只需嘗試:text_file.close()

3

發生這種情況是因爲除非您刷新或關閉文件,否則操作系統不會將任何數據寫入磁盤。要確保文件被關閉,使用with聲明:

with open("test.txt", "w") as f: 
    f.write(randomval(20,10)) 

print('Whoa, at this point the file descriptor is automatically closed!') 
2

做一個f.close(),然後再次打開它text_file =打開(「test.txt的」,「R」)