OK, das ist wahrscheinlich ziemlich einfach, aber ich bin noch sehr neu bei Python. Ich schätze die Hilfe.Python: Wie man eine Textdatei nach einer Zeichenkette sucht und dann auf das zugreift, was danach geschrieben wird
Ich versuche, mein Programm auf eine Textdatei zugreifen, die von der Befehlszeile angezeigt wird, die einige Float-Daten enthält, die auf einer Zeile aber einem verwandten Jahr vorausgehen.
Zum Beispiel:
2010
11 21.5 18 15.2 13 17 14 0 10 16 8.6 5
2013
10.6 14.5 17.9 11.2 1.5 1.9 16 2.2 10 5.2 4.6 5
Ich mag ein Jahr den Benutzer zur Eingabe fragen, und dann, wenn das Jahr in der Textdatei gefunden wird, die entsprechenden Daten für jeden Monat drucken.
Ich kann nicht scheinen, dass dies funktioniert.
Derzeit wird das Programm für das Jahr überprüfen, und wenn es nicht gefunden wird, wird es sagen, und fragen Sie erneut, aber wenn es gefunden wird, wird es einfach sofort erneut fragen.
Dies ist eine Ordnung gebracht Version des Teils meines Codes:
f = open(sys.argv[1])
months = ['January', 'February', ...]
while True:
f.seek(0)
os.system('cls')
year = input("Enter year for which you want rainfall data: ")
line = f.readline().strip()
while line and line != year:
line = f.readline().strip()
if not line:
print("No rainfall data found for year {}".format(year))
input("Press Enter to continue ...")
response = input("Do it again for another year? [[y]/n] ")
if response == "n":
break
else:
rain_line = f.readline()
rain_line = rain_line.strip()
rain_line = rain_line.split()
rain_strings = list(rain_line)
rain_numbers = []
for rain in rain_strings:
rain_numbers.append(rain)
print("in {}, {} Millimeters.".format(months[1], rain_numbers[1]))
Anybody sehen, wenn ich nahe bin oder weg?
Ich habe seit Stunden herumspielen.