python数行号

Count line no. using python

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to get line count cheaply in Python?

在我的工作中,我需要打开一个文件并计算其中的行数,我尝试了这个方法。

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

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

1
print linecache.getline(File_Name, 350)

它显示第350行的内容。

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

谢谢您


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
>>> f = open("file.txt","w")
>>> f.write("a
b
c

d

e
"
)
>>> f.close()
>>> open("file.txt").readlines()
['a
b
'
, 'c

'
, 'd
'
, '
e
'
]
>>> open("file.txt", 'rU').readlines()
['a
'
, 'b
'
, 'c
'
, '
'
, 'd
'
, '
'
, 'e
'
]

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> for n in range(1, 8):
...   linecache.getline('file.txt', n)
...
'a
'

'b
'

'c
'

'
'

'd
'

'
'

'e
'