Fehler im Script

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
cblom
User
Beiträge: 1
Registriert: Freitag 9. April 2010, 16:53

Hallo,

ich habe ein kleines Script welches ich im WWW gefunden ( siehe Unten )habe etwas veraendert nur hat dieses Script einen kleinen Fehler und
ich weiss nicht wie ich den unterdruecken kann.

Wenn ich das Script laufen lasse werden ausser meinen inputs auch noch am Ende ( ungewollt ) das Datum in die Daten.txt geschrieben.
( siehe printout Daten.txt ) Wie kann ich das nun vermeiden ???

Danke fuer eine Help, Gruss Claus :-))

import time
print("DBS on the run")
print()
nummer = " " #1
daten = open("daten.txt", "w")
while nummer != "":
nummer = input("Start Number (End <Enter>): ")
daten.write(nummer + ":\t\t" + time.asctime() + "\n") #2
daten.flush() #3
print()
print("Runners Number and Time are save in daten.txt")
input()
daten.close() #4


1011: Fri Apr 09 10:49:06 2010
2220: Fri Apr 09 10:49:13 2010
2201: Fri Apr 09 10:49:29 2010
: Fri Apr 09 10:49:31 2010
[/code]
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo
das sollte dann wohl so aussehen

Code: Alles auswählen

print("DBS on the run") 
print() 
nummer = " " #1 
daten = open("daten.txt", "w") 
while nummer != "": 
nummer = input("Start Number (End <Enter>): ") 
daten.write(nummer + "\n") #2 
daten.flush() #3 
print() 
print("Runners Number are save in daten.txt") 
input() 
daten.close() #4

Gruß...busfahrer

€dit:Wenn ich das richtig erkenne nutzt du Python3.x,dann ist sicher das noch interessant für dich -> http://docs.python.org/dev/py3k/tutorial/index.html
Alles wird gut ;-)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Für Python 2.5 oder aufwärts:

Code: Alles auswählen

from __future__ import print_function, with_statement
import time
print('DBS on the run')
print()
with open('daten.txt', 'w') as f:
    while True:
        nummer = raw_input('Start Number (End <Enter>): ') # Python 2.6
        if nummer:
            f.write(nummer + ':\t\t' + time.asctime() + '\r\n') #2
            print('Runners Number and Time are save in daten.txt')
        else:
            print()
            print('Break!')
            break
raw_input()
Für Python 3.X:

Code: Alles auswählen

import time
print('DBS on the run')
print()
with open('daten.txt', 'w') as f:
    while True:
        nummer = input('Start Number (End <Enter>): ')
        if nummer:
            f.write(nummer + ':\t\t' + time.asctime() + '\r\n')
            print()
            print('Runners Number and Time are save in daten.txt')
        else:
            print('Break!')
            break
input()
Edit:// Dein Problem lag in der while-Schleife, sobald du nur Enter gedrück hast wird die Schleife zwar beendet, aber die Daten wurden davor noch einmal geschrieben
the more they change the more they stay the same
Antworten