Forum >> Principianti >> Piccolo chiarimento

Pagina: 1

Buongiorno.
Come suggerito da ESC(Grazie ! ottima guida) sto seguendo la guida di Shaw(Python,the hard way)

cè questo esempio ed è abbastanza chiaro.
Ho solo un piccolo buco :
quando chiamo print_a_line gli passo il numero della linea (che viene printato) e gli passo current_file da leggere dicendogli di scrivere.
Ora il puntatore è all'inizio (lo rimetto "indietro" con seek).
Mi sfugge però come al comando successivo sa che deve leggere la linea 2.
Sembra una cosa stupida(e detta da me probabilmente lo è :V ) magari ma quando riprende il current_file non dovrebbe rileggerlo da capo ?Come funziona

Grazie !



from sys import argv

script, input_file = argv

def print_all(f):
print f.read()

def rewind(f):
f.seek(0)

def print_a_line(line_count, f):
print line_count, f.readline()

current_file = open(input_file)

print "Prima di tutto stampiamo l'intero file : 1n"

print_all(current_file)

print "Ora andiamo indietro tipo un registratore."

rewind(current_file)

print "Stampiamo 3 linee"

current_line = 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)

--- Ultima modifica di lrndnl in data 2016-03-25 14:25:54 ---
from sys import argv

script,input_file=argv

def print_all(fileDaLeggere):
    print fileDaLeggere.read()

def rewind(fileDaLeggere):
    fileDaLeggere.seek(0)

def print_a_line(conto_linea,fileDaLeggere):
    print conto_linea,fileDaLeggere.readline()

file_corrente = open(input_file)

print "Prima di tutto stampiamo l'intero file: 1n"

print_all(file_corrente)#richiami la funzione print_all

print "ora indietro come un registratore."

rewind(file_corrente)#richiami la funzione rewind qui e solo ora ritorna alla linea 0

print "Stampo le prime 3 line"

linea_corrente=1

print_a_line(linea_corrente,file_corrente)#richiami la funzione print_a_line passandogli i valori che vuoi
                                          #e cioe la riga che deve leggere e il file che deve aprire per leggerlo

linea_corrente =linea_corrente + 1

print_a_line(linea_corrente,file_corrente)#richiami sempre la stessa funzione solo che in questo caso
                                          #il primo valore che passi è aumentato di un o rispetto a prima
Thx !!


Pagina: 1



Esegui il login per scrivere una risposta.