Для моей работы я привык работать с Matlab. Нет, я также пытаюсь изучить базовые навыки работы с python. В настоящее время я работаю над на следующей Excersise:Stdin Stdout python
Вы заинтересованы в извлечении всех вхождений, которые выглядят как это
<Aug22-2008> <15:37:37> Bond Energy LDA -17.23014168 eV
В частности, вы хотите, чтобы собрать числовые значения (например,
-17.23014168
) и распечатать их. Напишите сценарий, который читает выходной файл со стандартного ввода, и использует регулярные выражения для , чтобы найти значения, которые вы хотите извлечь. Попросите свой сценарий распечатать все значения на стандартный вывод.
Это код, я использую:
import os,re
from string import rjust
dataEx=re.compile(r'''
^\s*
<Aug22-2008>
\s+
<\d{2}:\d{2}:\d{2}>
\s+
Bond
\s
Energy
\s
LDA
\s+
((\+|-)?(\d*)\.?\d*)
''',re.VERBOSE)
f=open('Datafile_Q2.txt','r')
line = f.readline()
while line != '':
line = f.readline() # Get next line
m = dataEx.match(line)
if m:
# print line
print m.group(1)
С помощью этого кода я могу найти все значения в файле данных, они просят. Однако у меня есть несколько вопросов. Во-первых, они задают кое-что о stdin и stdout. Нет, мне интересно, я использую правильный код для чтения выходного файла со стандартного ввода и действительно ли я распечатываю все значения до стандартного вывода таким образом? Более того, мне интересно, есть ли лучший или более простой способ найти нужные значения?
Это очень трудно найти регулярное выражение, если у вас есть только одна строка ввода. –