2016-05-13 3 views
0

Dies ist der Code, den ich schrieb. Nachdem ich die Dateien name und hb in die Datei geschrieben habe, habe ich erwartet, dass ich den Inhalt der von mir erstellten Textdatei sehen kann.Meine Python-Textdatei erscheint als leer

run=True 
name=[] 
hb=[] 
list_data=() 

def add_new(): 
    name=input("Name: ") 
    hb=input("HB: ") 
    for n,h in zip(name,hb): 
     list_data=open("p.txt","w") 
     list_data.write("User:{0:>3s}\nHB:{1:>5s}\n".format(n,h)) 
     list_data.close() 

while run is True: 
    ask1=input("1. View\n2. Add\n3. Edit\n4. Remove\nPick a number: ") 
    if ask1=='1': 
     if not list_data: 
      print("Nothing to view") 
     else: 
      list_data=open("p.txt","r") 
      print(list_data.read()) 
    elif ask1=='2': 
     add_new() 
    elif ask1=='3': 
     print("WIP") 
    elif ask1=='4': 
     print("WIP") 

Nachdem ich den Code in SHELL lief, habe ich dieses Ergebnis:

1. View 
2. Add 
3. Edit 
4. Remove 
Pick a number: 2 
Name: test1 
HB: test11 
1. View 
2. Add 
3. Edit 
4. Remove 
Pick a number: 1 
Nothing to view 

Natürlich sind die test1 und test11 Werte waren, was ich eingegeben, wenn der Code mich zur Eingabe aufgefordert.

Auch wenn ich die TXT-Datei in Editor öffnen finde ich dies:

User: e 
HB: e 

Was mache ich falsch hier?

Antwort

2

Drucken Sie Ihre n und h in "für n, h in zip (Name, hb)".

Sie werden sehen, dass Zip Ihnen eine Menge Tupel geben. Wenn Sie die Datei immer wieder öffnen, wird sie überschrieben (da Sie den Append-Modus nicht verwenden).

Werfen Sie einen Blick auf: https://docs.python.org/2/tutorial/inputoutput.html