use*_*303 3 python python-2.7 python-3.x
可能重复:
如何在Python中廉价地获得行数?
在我的工作中,我需要打开一个文件并计算不.在那里,我试过这个
Last_Line = len(open(File_Name).readlines())
它工作正常.现在我有一个问题,实际上没有.文件中的行是453,但如果我打印Last_Line
它只显示339.如果我尝试
print linecache.getline(File_Name, 350)
Run Code Online (Sandbox Code Playgroud)
它显示的是行号的内容.350.
我尝试在所有模式下打开文件.无论是文件问题还是逻辑问题?请帮忙.
谢谢
你有混合的行尾.您的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']
Run Code Online (Sandbox Code Playgroud)
该文档linecache
似乎没有说明它如何处理行结尾.根据经验,它使用通用换行符:
>>> for n in range(1, 8):
... linecache.getline('file.txt', n)
...
'a\n'
'b\n'
'c\n'
'\n'
'd\n'
'\n'
'e\n'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
913 次 |
最近记录: |