当前位置: 首页 > 面试题库 >

在文件开头加上一行

秦博延
2023-03-14
问题内容

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

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

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


问题答案:

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



 类似资料:
  • 我有一个文本文件,上面写着: 我想做的是在java列表的顶部添加 我在stackoverflow上遇到了另一个类似的问题,但是,这个答案覆盖了名字。 我现在有的是: 文件图像:http://postimg.org/image/pu043d0kv/

  • 问题内容: 我有以下bash代码,该代码逐行循环通过文本文件.. im试图为每行添加工作前缀’prefix’,但是却出现此错误: 这是bash脚本.. 我在这里做错了什么? 更新:从头开始将所有行都转储到终端的一行中,可能相关吗? 问题答案: 单行awk命令也可以做到这一点:

  • 问题内容: 我现在正在这样做,但是我希望它写在文件的开头。 这样的内容将是: 而不是(就像这段代码一样): 问题答案: 看一下这个问题。那里有一些解决方案。 尽管我可能会以Daniel和MAK所建议的相同方式进行操作-也许要上课以使事情更加灵活和明确:

  • 问题内容: 到目前为止,我已经能够找到如何在文件的开头添加一行,但这并不是我想要的。我会在一个例子中展示 档案内容 结果 相似,但是我不想用它创建任何新行… 如果可能的话,我想这样做。 问题答案: 可以在一个地址上运行: 您在这里的每个答案中看到的神奇之处是什么?线路寻址!。 要添加前10行吗? 或者您可以使用:

  • 问题内容: 我需要在文本文件的开头写入一些内容。我有一个包含内容的文本文件,我想在此内容之前写点东西。说我有; 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 修改后,我希望它像这样: Page 1-Scene 59 25.05.2011 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 刚刚组成的内容:)我如何以这种方式修改文本文件? 问题答案: 您无法真正 通

  • 问题内容: 在PHP中,如果您写入文件,它将写入现有文件的末尾。 我们如何在文件的开头加上一个要写入的文件? 我已经尝试过功能,但是如果当前内容大于现有内容,似乎会覆盖。 有任何想法吗? 问题答案: file_get_contents解决方案对于大型文件而言效率不高。此解决方案可能需要更长的时间,具体取决于需要添加的数据量(实际上越多越好),但是它不会消耗内存。