我可以使用单独的文件来执行此操作,但是如何在文件的开头添加一行?
f=open('log.txt','a') f.seek(0) #get to the first position f.write("text") f.close()
由于文件是在追加模式下打开的,因此此操作从文件末尾开始写入。
在模式'a'或中'a+',即使在write()触发函数的当前时刻,文件的指针也不位于文件的末尾,任何写入都在文件的末尾进行:在进行任何写入之前,指针已移至文件的末尾。您可以通过两种方式来做自己想做的事情。
'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允许在适当位置重写一行;以下行必须向前或向后移动才能进行就地操作,但是我不知道该机制