4

我,我从一个文件中读取一些行,我正在检查每一行是否有 Windows 类型的 CRLF。如果任何一行中没有“\n”或“\r”,则必须报告错误。我尝试使用下面的代码,即使该行没有'\r',它也没有报告任何错误

Open_file = open(File_Name,'r').readlines()
while Loop_Counter!= Last_Line:
        Line_Read = Open_file[Loop_Counter]
        if('\r\n' in Line_Read):
            pass
        else:
            print Loop_Counter

谢谢

4

3 回答 3

8

这是行不通的,因为Loop_Counter根本没有调整过;无论初始值是什么,它都不会改变,while循环要么无限期运行,要么永远不会通过。您的代码在这里很不清楚;我不确定你为什么要这样构造它。

你建议这样做会更容易:

infile = open(filename, 'rb')
for index, line in enumerate(infile.readlines()):
    if line[-2:] != '\r\n':
        print index

'rb'参数是必要的,以确保换行符被读取为\r\n而不仅仅是\n.

于 2012-12-19T13:50:51.600 回答
2

试试这个

Open_file = open(File_Name,'rb').readlines()

你必须以二进制模式打开文件

于 2012-12-19T13:41:01.737 回答
0

应该是

if ('\r' not in Line_Read or '\n' not in Line_Read): 
    print Loop_Counter

?? 此外,正如 jdotjdot 指出的那样, Loop_Counter 根本没有增加。

于 2012-12-19T15:12:15.613 回答