Agregar números de línea a un archivo en Python 3

Necesito escribir los números de línea en un archivo de texto ya existente en Python 3. Han pedido que las primeras 5 columnas del archivo de texto contengan un número de línea de 4 dígitos seguido de un espacio.

He intentado hacer esto creando un bucle for que lee las líneas y agrega un número (1) al principio de la línea y luego incrementa el número para la siguiente línea, pero no ha funcionado. Sigue apareciendo un error que dice que no puedo unir una cadena y un entero en mi salida.

¿Cuál sería la forma más sencilla de hacer esto?

numberedfile = open("test.txt", "r") numberedlist = numberedfile.readline() for line in numberedlist: x = 1 nrline = (x + line) x += 1 print(nrline) numberedlist = numberedfile.readline() numberedfile.close() 

Esto imprime para mostrar el patrón de texto que describe:

 with open('/etc/passwd') as fp: for i, line in enumerate(fp): sys.stdout.write('%04d %s'%(i, line)) 

Si necesita editar el archivo en su lugar o admitir varios archivos, intente usar fileinput :

 #!/usr/bin/python import fileinput import sys for line in fileinput.input(inplace=True): sys.stdout.write('%04d %s'%(fileinput.filelineno(), line)) 
 #!/usr/bin/python numberedfile = open("test.txt", "r") numberedlist = numberedfile.readline() i = 0 for lines in numberdlist: i = i+1 print str(i) + '\t' + lines numberdfile.close()