Estoy viendo cómo hacer la entrada y salida de archivos en Python. Escribí el siguiente código para leer una lista de nombres (uno por línea) de un archivo a otro archivo mientras verifico un nombre con los nombres en el archivo y anexo texto a las ocurrencias en el archivo. El código funciona ¿Se podría hacer mejor?
Quería usar la with open(...
declaración para los archivos de entrada y salida, pero no puedo ver cómo podrían estar en el mismo bloque, lo que significa que necesitaría almacenar los nombres en una ubicación temporal.
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()
es una función incorporada, por lo que probablemente debería elegir un nombre diferente para su función.
filter()
), se encontrará antes del incorporadofilter()