Может ли кто-нибудь помочь мне подумать над решением этой проблемы.В приведенном ниже коде я беру список и открываю все файлы .log и .txt, чтобы найти в них определенную строку.В самом внутреннем цикле for есть оператор if и else, который определяет, была ли найдена строка или нет.Я хочу посчитать количество файлов, в которых была найдена строка ... и каким-то образом передать это третьему (последнему) для цикла и отображения ... (например, Files Matched: 4).Я все еще изучаю Python, поэтому я не знаю всех различных конструкций, которые могли бы ускорить это начинание.Я уверен, что это прямая проблема, но я исчерпал все, что я знаю, чтобы сделать, кроме метода проб и ошибок.Спасибо!
...
for afile in filelist:
(head, filename) = os.path.split(afile)
if afile.endswith(".log") or afile.endswith(".txt"):
f=ftp.open(afile, 'r')
for i, line in enumerate(f.readlines()):
result = regex.search(line)
if result:
ln = str(i)
pathname = os.path.join(afile)
template = "\nLine: {0}\nFile: {1}\nString Type: {2}\n\n"
output = template.format(ln, pathname, result.group())
hold = output
print output
ftp.get(afile, 'c:\\Extracted\\' + filename)
temp.write(output)
break
else:
print "String Not Found in: " + os.path.join(afile)
temp.write("\nString Not Found: " + os.path.join(afile))
f.close()
for fnum in filelist:
print "\nFiles Searched: ", len(filelist)
print "Files Matched: ", count
num = len(filelist)
temp.write("\n\nFiles Searched: " + '%s\n' % (num))
temp.write("Files Matched: ") # here is where I want to show the number of files matched
break