为了账号安全,请及时绑定邮箱和手机立即绑定

将行前置到文件的开头

将行前置到文件的开头

慕虎7371278 2019-09-06 13:06:14
将行前置到文件的开头我可以使用单独的文件来完成此操作,但如何在文件的开头添加一行?f=open('log.txt','a')f.seek(0) #get to the first positionf.write("text")f.close()由于文件以追加模式打开,因此从文件末尾开始写入。
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

在模式'a'或者'a+',任何写操作是在文件的最后完成,即使在当当前时刻write()功能被触发文件的指针是不是在文件的结尾:任何文字之前,指针移动到文件末尾。你可以用两种方式做你想做的事。

第一种方法,如果没有问题将文件加载到内存中,可以使用:

def line_prepender(filename, line):
    with open(filename, 'r+') as f:
        content = f.read()
        f.seek(0, 0)
        f.write(line.rstrip('\r\n') + '\n' + content)

第二种方式:

def line_pre_adder(filename, line_to_prepend):
    f = fileinput.input(filename, inplace=1)
    for xline in f:
        if f.isfirstline():
            print line_to_prepend.rstrip('\r\n') + '\n' + xline,
        else:
            print xline,

我不知道这种方法是如何工作的,如果它可以在大文件上使用。传递给输入的参数1允许在适当的位置重写一行; 以下行必须向前或向后移动才能进行就地操作,但我不知道机制



查看完整回答
反对 回复 2019-09-07
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

在我熟悉的所有文件系统中,您无法就地执行此操作。您必须使用辅助文件(然后可以重命名该文件以获取原始文件的名称)。


查看完整回答
反对 回复 2019-09-07
  • 3 回答
  • 0 关注
  • 338 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信