如何修改文件的最后一行?

Uca*_*oIt 6 python file

我文件的最后一行是:

29 DEZ,40,

如何修改该行,使其显示为:

29费尔南德斯,40,90,100,50

注意:我不想写新的一行.我想采用相同的行并在之后添加新值29-Dez,40,

我是python的新手.我在操作文件时遇到了很多麻烦,对我而言,我看到的每个例子都很难.

Dou*_*der 6

除非文件很大,否则您可能会发现将整个文件读入数据结构(可能只是行列表)更容易,然后修改内存中的数据结构,最后将其写回文件.

在另一方面,也许你的文件真正巨大的-多个绿带至少.在这种情况下:最后一行可能以新行字符结束,如果您寻找该位置,则可以使用最后一行末尾的新文本覆盖它.

所以也许:

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() 
Run Code Online (Sandbox Code Playgroud)

(不同平台上的Modulo行结尾)

  • 对于 Python 3.2 及更高版本,您只能从文件(文本文件)的开头执行查找操作。 (2认同)

Jay*_*Jay 5

为了扩展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)
Run Code Online (Sandbox Code Playgroud)

如果文件很大,则此方法将无法正常工作,因为这每次都会将所有文件行都读取到内存中,并将它们写回到文件中,这效率很低。对于较小的文件,这将可以正常工作。


Ton*_*uža 0

不要直接使用文件,以类的形式创建适合您需求的数据结构,并使用读取/写入文件的方法。