Für meine Arbeit bin ich es gewohnt mit Matlab zu arbeiten. Nein, ich versuche auch die grundlegenden Fähigkeiten von Python zu lernen. Zur Zeit arbeite ich an am folgenden excersise:Stdin Stdout python
Sie interessieren sich für alle Vorkommen zu extrahieren, die diese
<Aug22-2008> <15:37:37> Bond Energy LDA -17.23014168 eV
Insbesondere wie aussehen, möchten Sie die Zahlenwerte sammeln, (z. B.
-17.23014168
), und drucken Sie sie aus. Schreiben Sie ein Skript, das die Ausgabedatei von der Standardeingabe liest, und verwenden Sie reguläre Ausdrücke, um die zu extrahierenden Werte zu finden ( ). Lassen Sie Ihr Skript alle die Werte zur Standardausgabe ausdrucken.
Dies ist der Code, den ich verwenden:
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)
Mit diesem Code ich in der Lage bin, alle Werte in der Daten-Datei sie fragen zu finden. Ich habe jedoch ein paar Fragen. Zuerst fragen sie etwas über Standard und Standard. Nein, ich frage mich, ob ich den richtigen Code verwende, um die Ausgabedatei von der Standardeingabe zu lesen, und kann ich wirklich alle Werte auf diese Weise auf die Standardausgabe ausgeben? Außerdem frage ich mich, ob es einen besseren oder einfacheren Weg gibt, die erforderlichen Werte zu finden?
Es ist sehr schwer, einen regulären Ausdruck zu finden, wenn alles, was Sie haben eine einzige Zeile eingegeben wird. –