我文件的最后一行是:
29 DEZ,40,
如何修改该行,使其显示为:
29费尔南德斯,40,90,100,50
注意:我不想写新的一行.我想采用相同的行并在之后添加新值29-Dez,40,
我是python的新手.我在操作文件时遇到了很多麻烦,对我而言,我看到的每个例子都很难.
除非文件很大,否则您可能会发现将整个文件读入数据结构(可能只是行列表)更容易,然后修改内存中的数据结构,最后将其写回文件.
在另一方面,也许你的文件是真正巨大的-多个绿带至少.在这种情况下:最后一行可能以新行字符结束,如果您寻找该位置,则可以使用最后一行末尾的新文本覆盖它.
所以也许:
f = open("foo.file", "wb") f.seek(-len(os.linesep), os.SEEK_END) f.write("new text at end of last line" + os.linesep) f.close()
(不同平台上的Modulo行结尾)
为了扩展Doug所说的内容,为了将文件内容读入数据结构中,可以使用文件对象的readlines()方法。
下面的代码示例将文件读入“行”列表,编辑最后一行,然后将其写回到文件中:
#!/usr/bin/python MYFILE="file.txt" # read the file into a list of lines lines = open(MYFILE, 'r').readlines() # now edit the last line of the list of lines new_last_line = (lines[-1].rstrip() + ",90,100,50") lines[-1] = new_last_line # now write the modified list back out to the file open(MYFILE, 'w').writelines(lines)
如果文件很大,则此方法将无法正常工作,因为这每次都会将所有文件行都读取到内存中,并将它们写回到文件中,这效率很低。对于较小的文件,这将可以正常工作。