2016-03-20 22 views
0

Ich habe ein Word-Dokument namens a.doc formatiert:Python Speichern Rest der Zeile nach Zeichenfolge in doc

Name - Bob

Haarfarbe - Rot

Alter - 28 ...

Ich möchte die Informationen nach "Name -" "Haarfarbe -" ... in eine Variable für den Zugriff später im Skript speichern. Wäre der einfachste Weg, eine Liste zu erstellen:

Keywords = (Name, 'Hair color', Age) 
Fileopen = open(a.doc) 
    Filecontent = readlines(fileopen) 
     For keywords in filecontent: 

Dies ist, wo ich stecken bleiben. Ich denke, dass ich eine Aussage hinzufügen kann, die erlaubt, nach dem "-" in jeder Linie zu greifen.

EDIT: Um genauer zu sein in meiner Erklärung das, was ich bin auf der Suche nach: Ich mag würde die Informationen in jeder Zeile getrennt nach dem greifen ‚- ‘ und speichern sie in einer Variablen. Zum Beispiel Name - Bob wird im Namen gleich "Bob" gespeichert.

Ich habe hier seit meinem letzten Update einige Fortschritte gemacht. Ich weiß einfach, dass ich es nicht einfach wiederhole.

Ich habe zog erfolgreich die Informationen verwendet:

filename = raw_input("choose your file: ") 
print "you chose: %r" % filename 
with open(filename) as fo: 
    for line in fo: 
     if "Name" in line: name = line.split(" - ", 1)[1] 
print name 
fo.close() 

Ich weiß, dass ich ziehen, um eine neue ‚if‘ Anweisung für jedes meiner Strings machen weiter ich möchte, aber offensichtlich, dass isn‘ Der schnellste Weg.

Meine ECHTE Frage: Wie mache ich die if-Anweisung in eine Schleife, die nach mehreren Strings sucht und sie separaten Variablen zuweist?

Am Ende bin ich wirklich nur auf der Suche nach diesen Variablen zu verwenden und neu anordnen, wie sie ausgedruckt werden, weshalb ich sie getrennt brauche. Ich habe versucht, die "Schlüsselwörter" zu verwenden, bin mir aber nicht sicher, wie ich dies zu jeder Variablen dynamisch definieren kann, die ich möchte. Soll ich sie zu einer Liste oder einem Tupel hinzufügen und sie dann auf diese Weise aufrufen? Der Variablenname hat außerhalb des Programms offensichtlich keine Bedeutung. Wenn ich ihn also aus einem Tupel wie in [0] aufrufen würde, könnte das auch funktionieren.

+0

Es ist mir nicht ganz klar, was Sie speichern möchten. Möchten Sie sowohl den Schlüssel "Haarfarbe" als auch den Wert "Rot" speichern? Wenn ja, dann ist vielleicht ein Wörterbuch der richtige Weg. – mmenschig

Antwort

0

Dieser Code fragt nach dem Namen, Alter und Haarfarbe der Person, dann die Informationen der Person zurück, während die Informationen in der Variablen filecontent Speicherung und gespeichert wird, bis Sie die Shell schließen:

def namesearch(Name, Hair, Age): 
Keywords = ('Name - ' + Name + ', Hair Color - ' + Hair \ 
     + ', Age - ' + Age) 
Fileopen = open('a.doc', 'r') 
for line in Fileopen: 
    if Keywords in line: 
     global Filecontent 
     Filecontent = line 
     print line 

Name = raw_input('Enter the person\'s name: ') 
Hair = raw_input('Enter the person\'s hair color: ') 
Age = raw_input('Enter the person\'s age: ') 
namesearch(Name, Hair, Age) 

Diese Code gibt die Informationen in diesem Format zurück: Name - (Name), Haarfarbe - (Haarfarbe), Alter - (Alter). Hinweis: Dieser Code kann nur nach Namen suchen, nicht hinzufügen