我需要在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()
答案 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()