Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14

    PYTHON:Blocca il programma

    Salve questo è il mio script:


    f=open("C:\\Users\\Desktop\\Nuova cartella (10)\\elenco.txt","r")
    line=f.readline()
    diz={}
    while line!=" ":
    line=line.strip("\n")
    line=line.split(",")
    diz[line[1]]=line[0]
    line=f.readline()
    print diz
    f.close() però in questo modo non mi restituisce il risultato,ma continua all'infinito e si blocca,come fare?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Usa i tag [CODE], specialmente per Python(dato che l'indentazione è significativa )
    In ogni caso il problema è che line non sarà mai uguale ad uno spazio, almeno che l'ultima riga del tuo file non contenga esattamente uno spazio (cosa improbabile). Forse volevi scrivere "" e non " "


    P.s. ti considero di riorganizzare la tua struttura di cartelle: "Nuova cartella (10)"
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14
    ma non so cosa dovrei mettere dentro il readline(), in quanto questa mi permette di continuare a leggere la riga successiva...
    Ultima modifica di marco345; 29-12-2013 a 16:19

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14
    comunque ho scritto while!=" ": ovvero quando la riga è diversa dallo spazio vuoto(!= è diverso)

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    forse volevi scrivere "" e non " "
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    [/color]
    ho provato anche a scrivere "" attaccato ma non cambia nulla

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Questo codice funziona perfettamente:
    codice:
    f = open("input.txt", "r")
    line=f.readline()
    diz={}
    while line != "":
      line = line.strip("\n")
      line = line.split(",")
      diz[line[1]] = line[0]
      line = f.readline()
    print diz
    f.close()
    ovviamente avendo un file formattato in questo modo:
    codice:
    value1,key1
    value2,key2
    value3,key3
    ...
    valuen,keyn
    Nel tuo codice probabilmente è errato il percorso al file, ma questo non dovrebbe bloccarti il programma ma darti un IOError
    Ultima modifica di Scara95; 29-12-2013 a 19:05
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Questo codice funziona perfettamente:
    codice:
    f = open("input.txt", "r")line=f.readline()
    diz={}
    while line != "":
      line = line.strip("\n")
      line = line.split(",")
      diz[line[1]] = line[0]
      line = f.readline()
    print diz
    f.close()
    ovviamente avendo un file formattato in questo modo:
    codice:
    value1,key1
    value2,key2
    value3,key3
    ...
    valuen,keyn
    Nel tuo codice probabilmente è errato il percorso al file, ma questo non dovrebbe bloccarti il programma ma darti un IOError
    Credimi che il percorso file è giusto perchè avevo già provato a stampare dei valori e venivano, ma quando scrivo il readline() poi vedo sulla interactive window che compaiono i valori delle singole righe che vengono messi all'infinito dentro il dizionario e poi si blocca il programma

  9. #9
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    14
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    mi esce questo: Traceback (most recent call last): File "main.py", line 7, in
    diz[line[1]]=line[0]
    IndexError: list index out of range

    Praticamente se io ho nel file:
    B417,CALLABIANA
    B508,CAMPIGLIA CERVO
    G594,PIEDICAVALLO come output mi da:
    {'CALLABIANA': 'B417'}
    {'CALLABIANA': 'B417', 'CAMPIGLIA CERVO': 'B508'}
    {'CALLABIANA': 'B417', 'CAMPIGLIA CERVO': 'B508', 'PIEDICAVALLO': 'G594'} quando in teoria mi dovrebbe dare automaticamente la terza riga! le prime due non dovrebbero uscire,dovrei avere solo il dizionario completato!
    Ultima modifica di marco345; 29-12-2013 a 19:23

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.