将行前置到文件的开头我可以使用单独的文件来完成此操作,但如何在文件的开头添加一行?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允许在适当的位置重写一行; 以下行必须向前或向后移动才能进行就地操作,但我不知道机制
添加回答
举报
0/150
提交
取消