Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向文件中添加行号_Python - Fatal编程技术网

Python 向文件中添加行号

Python 向文件中添加行号,python,Python,我需要将行号写入python 3中已经存在的文本文件。 他们要求文本文件的前5列包含一个4位数的行号,后跟一个空格 我试图通过创建一个for循环来实现这一点,该循环读取行,并在行的开头添加一个数字1,然后增加下一行的数字,但它一直不起作用。它不断出现一个错误,说我不能在输出中连接字符串和整数 最简单的方法是什么 numberedfile = open("test.txt", "r") numberedlist = numberedfile.readline() for line in num

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

我试图通过创建一个for循环来实现这一点,该循环读取行,并在行的开头添加一个数字1,然后增加下一行的数字,但它一直不起作用。它不断出现一个错误,说我不能在输出中连接字符串和整数

最简单的方法是什么

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

这会打印出您描述的文本模式:

with open('/etc/passwd') as fp:
    for i, line in enumerate(fp):
        sys.stdout.write('%04d %s'%(i, line))
如果需要就地编辑文件或支持多个文件,请尝试使用fileinput:


这会打印出您描述的文本模式:

with open('/etc/passwd') as fp:
    for i, line in enumerate(fp):
        sys.stdout.write('%04d %s'%(i, line))
如果需要就地编辑文件或支持多个文件,请尝试使用fileinput:

def text_行文件: c=openfile,r 列表行数=c.readlines c、 接近 数字=1 编号的\u列表\u行数=[] 对于列表中的i\u行: 编号的_行={0:0>4}.formatnumber++i 编号的\u行列表\u。追加编号的\u行 数字+=1 f=opennumerated_text.txt,w 对于编号为\u的\u行列表中的i: f、 写 f、 接近 def text_行文件: c=openfile,r 列表行数=c.readlines c、 接近 数字=1 编号的\u列表\u行数=[] 对于列表中的i\u行: 编号的_行={0:0>4}.formatnumber++i 编号的\u行列表\u。追加编号的\u行 数字+=1 f=opennumerated_text.txt,w 对于编号为\u的\u行列表中的i: f、 写 f、 接近
除了从0000开始的数字,而不是从0001开始的数字外,这张照片打印得非常完美。如何将其更改为从0001开始?@Emj将文本第三行的i更改为i+1。或者在第二个示例中,将+1附加到fileinput.filelineno,使其看起来像fileinput.filelineno+1,我建议使用。让我们加上一个end=以便它不会将打印“%04d%s”%f.filelineno,line,end=这张打印效果很好,除了数字从0000开始,而不是从0001开始。如何将其更改为从0001开始?@Emj将文本第三行的i更改为i+1。或者在第二个示例中,将+1附加到fileinput.filelineno,使其看起来像fileinput.filelineno+1,我建议使用。让我们插入一个end=以避免打印“%04d%s”时出现双空格。f.filelineno,line,end=Tee问题是不能将字符串连接到整数。看看这个问题,可以得到一些指导:,这会让你找到正确的方向。这是有道理的。我现在正努力让它迭代。我把它改成:nrline=strx+line,但是迭代不起作用。我把x从for循环中移出,这样它就可以进行迭代了。感谢您的帮助:Tee的问题是不能将字符串连接为整数。看看这个问题,可以得到一些指导:,这会让你找到正确的方向。这是有道理的。我现在正努力让它迭代。我把它改成:nrline=strx+line,但是迭代不起作用。我把x从for循环中移出,这样它就可以进行迭代了。感谢您的帮助:
#!/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()