将行前置到文件的开头

将行前置到文件的开头

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

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

由于文件以追加模式打开,因此从文件末尾开始写入。


慕虎7371278
浏览 339回答 3
3回答

阿晨1998

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

梦里花落0921

在我熟悉的所有文件系统中,您无法就地执行此操作。您必须使用辅助文件(然后可以重命名该文件以获取原始文件的名称)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python