¿agregar datos en una línea específica de un archivo de texto en Python?

Digamos que tengo este archivo de texto: date.txt. mes | día | año

January|20|2014 February|10| March|5|2013 

Quiero poner 2012 después de febrero | 10 |. ¿Cómo puedo hacer eso?

Debe leer el archivo en la memoria, modificar la línea deseada y volver a escribir el archivo.

 temp = open('temp', 'wb') with open('date.txt', 'r') as f: for line in f: if line.startswith('February'): line = line.strip() + '2012\n' temp.write(line) temp.close() shutils.move('temp', 'data.txt') 

Si no quieres usar un archivo temporal:

 with open('date.txt', 'rw') as f: lines = f.readlines() for i, line in enumerate(lines): if line.startswith('February'): line[i] = line[i].strip() + '2012\n' f.seek(0) for line in lines: f.write(line) 

Puedes usar el módulo csv , por ejemplo:

 import csv data = [ "January|20|2014", "February|10|", "March|5|2013" ] reader = csv.reader(data, delimiter="|") for line in reader: line = [i if i != "" else "2012" for i in line] print(line) 

Tenga en cuenta: csv.reader() toma como argumento cualquier objeto iterable. Por lo tanto, puede pasar fácilmente un objeto de archivo