2011-10-09 77 views
2

我正在使用最新的GAE默認python環境。這兩個給出的預期成果:如何在GAE上使用python將XML文件加載到字符串中?

isTrue = os.path.exists(path) 
numberGreaterThanZero = os.path.getsize(path) 

但這:

myStrLen = len(open(path)) 

給出了這樣的錯誤:

TypeError: object of type 'FakeFile' has no len() 

沒有結果在谷歌的錯誤。不能打開文件是一個真正的失望。我究竟做錯了什麼?爲什麼Python/GAE認爲我的文件是假的?

+0

GAE提供受限制的文件訪問權限。你有沒有試過只讀文件? –

+0

我試過像這樣讀取文件:'strToRead = open(path)'。 'strToRead'結束爲空,並且對該字符串的操作導致FakeFile錯誤。我可以從同一目錄中的文件渲染模板。 –

回答

5

open函數返回一個打開的文件,而不是一個字符串。打開的文件沒有len

您需要從文件中實際讀取字符串,例如使用read方法。

contents = open(path).read() 
myStrLen = len(contents) 

如果您不需要的內容,你也可以用os.stat獲取文件大小。

myStrLen = os.stat('/tmp/x.py').st_size 

FakeFile只是GAE的沙盒中執行的file

+0

你們在這裏真棒。我非常關注那個FakeFile錯誤,我錯過了讀取方法。 –

+0

很高興能幫到:) –

+0

'os.stat'應該可以在App Engine上正常工作。 –

相關問題