4

i、mはファイルからいくつかの行を読み取り、各行に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 に答える