在python 3中为行文件添加行号

时间:2014-05-05 16:32:40

标签: python

我需要在python 3中将行号写入已存在的文本文件中。 他们要求文本文件的前5列包含4位数的行号,后跟空格。

我试图通过创建一个读取行的for循环并在行的开头添加一个数字(1),然后增加下一行的数字,但是没有&#t; t尝试这样做一直在努力它不断出现一个错误,说我无法在输出中加入字符串和整数。

最简单的方法是什么?

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()

3 个答案:

答案 0 :(得分:3)

这将打印到stdout您描述的文本模式:

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

如果您需要编辑文件或支持多个文件,请尝试使用fileinput

#!/usr/bin/python

import fileinput
import sys

for line in fileinput.input(inplace=True):
    sys.stdout.write('%04d %s'%(fileinput.filelineno(), line))

答案 1 :(得分:0)

#!/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()

答案 2 :(得分:0)

def text_lines(file):
    c = open(file, "r")
    list_of_lines = c.readlines()
    c.close()
    number = 1
    numbered_list_of_lines = []
    for i in list_of_lines:
        numbered_lines = "{0:0>4}".format(number) + " " + i
        numbered_list_of_lines.append(numbered_lines)
        number += 1
    f = open("numerated_text.txt", "w")
    for i in numbered_list_of_lines:
        f.write(i)
    f.close()