Я написал скрипт, чтобы найти определенную строку и напечатать определенное вхождение. Это работало очень хорошо, пока группы не стали неопределенной длины, и мне просто нужно напечатать последнюю. Мне было бы любопытно узнать, что такое find2.group и found3.group, если бы был способ напечатать только последний результат.
f = open ("CompTime.csv","w")
for infile in glob.glob( os.path.join(dir, '*.out') ):
file_handler = open(infile, "r")
content = file_handler.read()
file_handler.close()
#Find Real Time
found2 = re.search(' REAL TIME *.+', content)
rtime = found2.group(0)[1:-1]
#Find CPU Time
found3 = re.search(' CPU TIMES *.+', content)
ctime = found3.group(0)[1:-1]
#Create and Format the results.
tResult = str(rtime)+','+str(ctime)
f.seek(0,2)
f.write(tResult+'\n')
f.close()
Есть ли способ сделать это, просто я прочитал литературу по регулярным выражениям, но мне кажется, что я не могу это сделать.
Рабочая версия:
dir = os.getcwd()
for infile in glob.glob( os.path.join(dir, '*.out') ):
file_handler = open(infile, "r")
content = file_handler.read()
file_handler.close()
rtime = re.findall(' REAL TIME *.+', content)[-1]
#Find CPU Time
ctime = re.findall(' CPU TIMES *.+', content)[-1]
#Create and Format the results.
tResult = str(rtime)+','+str(ctime)
print tResult