3

可能重复:
如何在 Python 中廉价地获得行数?

在我的工作中,我需要打开一个文件并计数。在那行中,我试过这个

Last_Line = len(open(File_Name).readlines())

它工作正常。现在我有一个问题,实际上没有。文件中的行数是 453,但如果我打印Last_Line它只显示 339。如果我尝试

print linecache.getline(File_Name, 350)

它正在显示行号的内容。350。

我尝试以所有模式打开文件。无论是文件问题还是我的逻辑问题?请帮忙。

谢谢你

4

1 回答 1

5

你有混合的行尾。您的 IDE 将它们都视为有效,而 Python 则不是。使用通用换行标志打开文件,"U"让 Python 将它们全部作为有效的行尾。

>>> f = open("file.txt", "w")
>>> f.write("a\rb\nc\r\nd\n\re\n")
>>> f.close()
>>> open("file.txt").readlines()
['a\rb\n', 'c\r\n', 'd\n', '\re\n']
>>> open("file.txt", 'rU').readlines()
['a\n', 'b\n', 'c\n', '\n', 'd\n', '\n', 'e\n']

的文档linecache似乎没有指定它如何处理行尾。根据经验,它使用通用换行符:

>>> for n in range(1, 8):
...   linecache.getline('file.txt', n)
...
'a\n'
'b\n'
'c\n'
'\n'
'd\n'
'\n'
'e\n'
于 2013-01-16T10:27:47.027 回答