with open(sourceFileName, 'rt') as sourceFile:
sourceFileConents = sourceFile.read()
sourceFileConentsLength = len(sourceFileConents)
i = 0
while i < sourceFileConentsLength:
print(str(i) + ' ' + sourceFileConents[i])
i += 1
請原諒unPythonic for i
循環,這僅僅是測試代碼&有理由這樣做的真正的代碼的方式。文件內容如預期
Anyhoo,真正的代碼似乎比預期更快地結束循環,所以我敲了上面的虛擬模型,它刪除了真實代碼的所有邏輯。
sourceFileConentsLength
報告爲13,690,但是當我打印出字符爲char的字符時,文件中仍然有幾百個字符,這些字符未被打印出來。
什麼給?
- 我應該使用
<fileHandle>.read()
以外的東西來獲取文件的全部內容到單個字符串嗎? - 我打了一些最大的字符串長度?如果是這樣,我可以解決它嗎?
- 如果文件在Windows中編輯&該腳本在Linux中運行(對不起,我不能發佈該文件,它是公司機密),可能是行結局
- 還有什麼?
[更新]我認爲我們打兩個那些想法。請參閱this question。
我做了一個ls -lAF
到臨時目錄。只有6k +字符,但腳本交給它就好了。我應該擔心行結束嗎?如果是這樣,我能做些什麼呢?源代碼文件傾向於在Windows下運行,但該腳本只能在Linux下運行。
[Updfate ++]我改變了在Eclipse我輸入文件到Linux行的結局,但仍然得到了同樣的結果。
編輯和相同的操作系統上運行它完美的作品。你可以打印'repr(sourceFileConents [i])'並判斷任何內容是否有'\ r'字符?源文件中是否有'100'行? – 2015-02-24 16:00:07
您是否考慮過將'sourceFileContents'寫入一個單獨的文件,然後用'diff'來檢查這兩個文件?如果你這樣做,你看到了什麼? – 2015-02-24 16:03:40
你使用什麼編碼? – Caramiriel 2015-02-24 16:04:45