2016-05-02 3 views
-2

Ich bin neu in Python, und es fällt mir schwer, die Syntax zu verstehen.Wie extrahiert man einen Teil einer Datei über mehrere Zeilen in Python?

Ich habe eine sehr große Datei, in der ich einen bestimmten Teil davon zu einer neuen Datei extrahieren muss. Wie würde ich das machen? Ich habe ein wenig Nachforschungen angestellt, und ich denke, was ich bisher habe ist, dass ich jede Zeile meiner Datei als String extrahieren müsste, dann müsste ich einen Teilstring aus dem String extrahieren. Ich bin mir nicht sicher, ob das richtig ist, aber jede Anleitung wäre sehr geschätzt.

Zum Beispiel kann die Datei wie folgt aussehen ....

Test file number one two three 
test file number two three four 
test file number three four five 

Und ich würde zum Beispiel das dritte und das vierte Wort in jeder Zeile extrahieren müssen.

Also müsste ich die Ausgabe aussehen .....

number one 
number two 
number three 

ich wirklich Ihre Hilfe schätzen würde. Ich bin sehr neu in der Python-Sprache, habe aber ein Projekt, das abgeschlossen werden muss. Vielen Dank im Voraus.

+0

SO ist kein Code-Writing-Service, obwohl wir gerne denjenigen helfen, die sich große Mühe gemacht haben. Was hast du schon versucht? – Conduit

+0

Alles, was ich hatte, so war weit #!/User/bin/env python file = open ("location \\ Dateiname", "r +") s = s.replace ('w',‘‚) chmod + x code.py – MuhA

Antwort

2

Für jede Zeile in der Datei:

print(" ".join(line.split(" ")[2:3]) 

wo line die Variable ist, in dem Sie die Linien speichern, die Sie in gelesen, und die Zahlen zwischen beziehen sich die [], auf die Worte, die Sie auswählen möchten (erinnern Sie sich, Python, wie fast alle anderen Sprachen, zählen Sie von 0). Wenn Sie mehr Wörter hinzufügen möchten, würden Sie es so tun:

print(" ".join(line.split(" ")[2:5]) 

und so weiter.

Hier ist, wie ich es umsetzen würde:

with open("file.txt", "r") as f: 
    for line in f: 
     print(" ".join(line.split(" ")[2:3]) 

Soweit diese Schreiben in eine Datei geht, der schnellste Weg, dies die Ausgabe dieses Skripts in eine Datei mit Ihrem Betriebssystem zu Rohr zu tun wäre, Shell:

python3 this_script.py > output.txt 

Dank Roman Tsegelskyi für den Vorschlag in Bezug auf den Aufruf von print().

+1

'print (" ".join (line.split (" ") [2: 3])' als etwas kurzgeschlossener Weg, es zu schreiben –

+0

Guter Punkt, werde ich die Antwort ändern, um dies zu reflektieren. – tobycode

+0

Ich schätze Ihre Hilfe sehr, danke. – MuhA

Verwandte Themen