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