2017-08-14 18 views
0

Wie ziehen Sie Daten mehrere Zeilen unter Text, den Sie finden können? Das ist die kurze Frage. Mehr Kontext ist unter ...Wie kann man Zeilen unter dem Text ziehen, den das Python-Skript gefunden hat?

Ich lerne Python und, als Übung, zog ich Baseball-Statistiken von Yahoo Fantasy Baseball, um mit zu spielen. Ich habe die Daten von der Webseite in eine Textdatei kopiert und eingefügt. Es ist chaotisch und sieht ungefähr so ​​aus:

Player Note 
Charlie Blackmon Col - OF 
8:40 pm vs Atl ? 
? 
Atl 
Video Playlist 
Video Forecast 
Autodraft Hero 
115 
12 
3 
99% 
159/474 
106 
27 
74 
11 
.335 
? 

konnte ich ein einfaches Skript einzurichten, um die Leitung mit dem Ballspieler Namen herausziehen. Siehe unten.

a=open('batters.txt') 
for line in a: 
    if '-' in line: 
     print(line) 

Allerdings würde ich auch zu Hause weggelaufen Summen gerne ziehen (ex. 27) und Batting Durchschnitt (ex. 0,335) aus den Daten.

Ich möchte es so etwas wie folgt aussehen:

Charlie Blackmon Col - OF, HR: 27, BA: .335 

Vielen Dank im Voraus für Ihre Anregungen!

+0

Mein Vorschlag ist, dass Sie reguläre Ausdrücke Blick in mehrzeilige. Reguläre Ausdrücke können entmutigend sein, aber sie wurden für diesen genauen Anwendungsfall erstellt - Siehe diese Frage - https://stackoverflow.com/questions/587345/regular-expression-matching-a-ultiline-block-of-text –

Antwort

-1

Ich empfehle Ihnen mit Anweisung zu verwenden, wie es Datei-Handler automatisch geschlossen ist, lesen Sie weiter alle Zeilen in der Datei zu Linien Liste und Zugriff darauf. Zum Beispiel: print (Zeilen [1]) # Charlie Blackmon Col - OF.

Sie können diesen Code-Schnipsel versuchen:

with open('batters.txt') as file: 
    lines = file.read().splitlines() 
    temp = '%s, HR: %s, BA: %s' 
    result = temp % (lines[1], lines[14], lines[17],) 
    print(result) 
Verwandte Themen