小编典典

在文件开头加上一行

python

我可以使用单独的文件来执行此操作,但是如何在文件的开头添加一行?

f=open('log.txt','a')
f.seek(0) #get to the first position
f.write("text")
f.close()

由于文件是在追加模式下打开的,因此此操作从文件末尾开始写入。


阅读 208

收藏
2020-12-20

共1个答案

小编典典

在模式'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允许在适当位置重写一行;以下行必须向前或向后移动才能进行就地操作,但是我不知道该机制

2020-12-20