当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何修改文件的最后一行?》经验,为你挑选了2个好方法。

我文件的最后一行是:

29 DEZ,40,

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

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

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

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



1> Douglas Leed..:

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

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

所以也许:

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行结尾)



2> Jay..:

为了扩展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)

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

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有