【问题标题】:Deleting the first line of a text file in python [duplicate]在python中删除文本文件的第一行[重复]
【发布时间】:2012-06-01 06:46:26
【问题描述】:

可能重复:
Editing specific line in text file in python

我正在编写一个允许用户将数据写入文本文件的软件。但是,我不确定如何删除文本文件的第一行并重写该行。我希望用户能够通过单击按钮并输入某些内容来更新文本文件的第一行,但这需要删除并写一个新行作为第一行,我不确定如何实现。任何帮助将不胜感激。

编辑:

所以我找到了文件的第一行并尝试写另一行,但这并没有删除前一行。

file.seek(0)
file.write("This is the new first line \n")

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以使用 readlines 获取行数组,然后在数组的第一个索引上使用 del。这可能会有所帮助。 http://www.daniweb.com/software-development/python/threads/68765/how-to-remove-a-number-of-lines-from-a-text-file-

    【讨论】:

      【解决方案2】:

      你没有描述你是如何打开文件的。如果您使用file = open(somename, "a"),该文件将不会被截断,但会在最后写入新数据(即使在大多数现代系统(如果不是所有现代系统)上搜索之后)。您必须使用“r+”打开文件)

      但是您的示例假设您编写的行与用户键入的长度完全相同。文件中没有行组织,只有字节,其中一些表示行结束。 您需要做的是在内存中为所有行使用临时文件或临时缓冲区,然后用第一个替换的行写出。

      如果内容适合内存(我假设这是因为很少有用户会输入这么多不适合的内容),您应该能够做到:

      lines = open(somename, 'r').readlines()
      lines[0] = "This is the new first line \n"
      file = open(somename, 'w')
      for line in lines:
          file.write(line)
      file.close()
      

      【讨论】:

        猜你喜欢
        • 2012-07-19
        • 2014-06-30
        • 2018-02-05
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 2019-07-02
        相关资源
        最近更新 更多