2013-03-11 86 views
0

我的代碼是這樣的:file.open不工作,我認爲這應該的方式

self.data = open("/myData", "a") 
self.data.close() 

self.data = open ("myData", "r") 


    self.master = Tk()  
    if (self.data.read()is not None): 
     print 2 
     print self.data.readlines() 
     print 1 

我通常會在2和一個間空的打印。

我確實知道有一些寫在myData中的東西。 我試圖打開myData的其他方法,比如

self.data = open ("/myData", "r") 

這使我拒絕「權限」(是的,我確實有對文件的讀,寫權,我檢查了)

self.data = open ("/game-engineering/myData", "r") 

它給我「文件未找到」。

我在做一些愚蠢的路徑錯誤嗎?我確實知道該文件不是空的,如果我手動打開它,我會看到裏面有什麼。

+2

如果路徑前綴爲「/」,則表示它是* absolute *路徑,這意味着它從文件系統的根目錄開始解析。我想你不想那樣!所以只需刪除前導「/」。 – 2013-03-11 00:09:28

+0

這是我第一次嘗試。它也沒有工作。 – newnewbie 2013-03-11 00:10:39

+0

然後,也許你目前的工作目錄是不正確的。用'os.path.getcwd()'檢查。另一種解釋是,儘管你對權限所說的話,你實際上是將Python作爲一些權限較低的用戶來運行。 – 2013-03-11 00:11:33

回答

3

當你調用read時,你「消耗」了文件(光標移動到文件的末尾) - 所以當調用readlines時,它立即命中EOF,並返回一個空列表。

在大多數情況下(帶有readlines),你可以直接使用它,因爲如果文件是空的,你會得到一個空的列表,所以你永遠不會進入迭代。

+0

非常感謝,這有訣竅。 – newnewbie 2013-03-11 00:21:12

相關問題