У меня большой текстовый файл, и я обрабатываю его построчно, используя оператор for ... in:
f = open(sys.argv[1])
for line in f:
И я пропускаю эти строки через некоторые регулярные выражения. Но мой код останавливается, когда эта длинная строка проходит через регулярное выражение:
Это строка:
Mar 25 09:42:22 2011 amavis[30883]: (30883-10) Passed CLEAN, [95.0.85.202] [95.0.85.202] <oyalcin@aaa.com> -> <acanli@aaa.com.tr>,<aeren@aaa.com.tr>,<aergul@aaa.com.tr>,<dalp@aaa.com.tr>,<faks@aaa.com.tr>,<fkonyali@aaa.com.tr>,<hozsoy@aaa.com.tr>,<makcan@aaa.com.tr>,<mengin@aaa.com.tr>,<mervekayabasi@aaa.com.tr>,<muhasebe@aaa.com.tr>,<okkesgol@aaa.com.tr>,<personel@aaa.com.tr>,<skazanci@aaa.com.tr>,<sumur@aaa.com.tr>,<tkececioglu@aaa.com.tr>,<ydemirci@aaa.com.tr>,<abalcin@aaa.com>,<adanisti@aaa.com>,<akaramanli@aaa.com>,<aozsahin@aaa.com>,<benalin@aaa.com>,<cgokburun@aaa.com>,<dkilinc@aaa.com>,<gleblebici@aaa.com>,<hsannan@aaa.com>,<iziyan@aaa.com>,<kcspetrol@aaa.com>,<malakus@aaa.com>,<maltuntas@aaa.com>,<mdelice@aaa.com>,<mguclu@aaa.com>,<mkocyigit@aaa.com>,<mokuducu@aaa.com>,<mtabar@aaa.com>,<m...
И это регулярное выражение и место, где код останавливается:
pattern_clean = re.compile("(\S{3} \d{2} \d{2}\:\d{2}\:\d{2} \d{4}).*CLEAN, (LOCAL )?(\[[.\d]+\] )?(\[[.\d]+\] )?<(\S*@(\S*))?> -> (<\S*>,)* Message-ID: <(\S*)>, mail_id: (\S*), Hits: (\S*), queued_as: (\S*), (\S*)")
if pattern_clean.search(line) != None:
Я пробовал этот скрипт в другом файле, он работал нормально. С этим файлом тоже все работало нормально, пока не пришла эта строка. Что может быть причиной этой проблемы?