Sto osservando come eseguire l'input e l'output dei file in Python. Ho scritto il seguente codice per leggere un elenco di nomi (uno per riga) da un file in un altro file, controllando un nome rispetto ai nomi nel file e aggiungendo il testo alle occorrenze nel file. Il codice funziona. Potrebbe essere fatto meglio?
Avrei voluto usare l' with open(...
istruzione sia per i file di input che di output, ma non riesco a vedere come potrebbero trovarsi nello stesso blocco, il che significa che dovrei archiviare i nomi in una posizione temporanea.
def filter(txt, oldfile, newfile):
'''\
Read a list of names from a file line by line into an output file.
If a line begins with a particular name, insert a string of text
after the name before appending the line to the output file.
'''
outfile = open(newfile, 'w')
with open(oldfile, 'r', encoding='utf-8') as infile:
for line in infile:
if line.startswith(txt):
line = line[0:len(txt)] + ' - Truly a great person!\n'
outfile.write(line)
outfile.close()
return # Do I gain anything by including this?
# input the name you want to check against
text = input('Please enter the name of a great person: ')
letsgo = filter(text,'Spanish', 'Spanish2')
filter()
è una funzione integrata e quindi probabilmente dovresti scegliere un nome diverso per la tua funzione.
filter()
), verrà trovata prima del built-infilter()