【发布时间】:2015-10-13 13:06:13
【问题描述】:
我有这段代码来计算文件中的每一行:
n = sum(1 for line in open('myfile.txt'))
'n' 是行数。但它没有给出正确的行数。数量相差数百。还尝试了在谷歌中找到的不同方法,但似乎没有任何效果。
知道为什么会这样吗?或者是否存在阻止它给出正确计数的情况?
--更新--
尝试将文件重新写入另一个文件:
i = 0
with open(file2) as outFile:
with open(file1) as inFile:
for line in inFile:
outFile.write(line)
i += 1
当在查看器上看到的行数方面,输出是 file2 与 file1 完全相同。但是 'i' 的值并没有给出正确的行数。
【问题讨论】:
-
你文件中的行终止符是否一致?
-
文件中有多少行,
n有多少行?另外,什么操作系统,以及线路终止符如何?如果您打印lines,您是否看到任何奇怪的东西,可能是编辑器中有一个合并的两个行? -
@tobias_k 总行数应该是 27,109 但我只得到 26,694。使用 Windows 作为操作系统。它有 CR/LF 和 CR。里面没有什么奇怪的。尝试将其重新写入一个新文件,并且它具有确切的行数。
-
@FrédéricHamidi 是的,它们是一致的
-
@albert,您在之前的评论中说过您的文件具有 CR/LF 和 CR。这在我看来不太一致。
标签: python-2.6