【问题标题】:How to choose what line of a text file to write to in python如何在python中选择要写入的文本文件的哪一行
【发布时间】:2020-10-20 04:03:17
【问题描述】:

我正在创建一个程序,它将每次程序运行时的输入存储在文本文件的单独行中。我猜这是一个非常简单的解决方案,例如,如果我使用

Data = open("Data.txt", "w")
Data.write(Entry) 

它在第一行写入我的变量 Entry 的值,如果我使用 append,它会做同样的事情,所以我怎么能告诉它把它写到当前空白的第 2 行/ 提前致谢

【问题讨论】:

  • 尝试将“w”替换为“a”。 w 用于写入,a 用于追加。

标签: python input write


【解决方案1】:

试试这个

Data = open("Data.txt", "a")
Data.write("\n")
Data.write(Entry)

【讨论】:

  • 这非常有效。感谢您提供简单的解决方案
  • 不用担心。如果有帮助,请考虑投票并选择它作为答案。
【解决方案2】:

您以追加或 r+ 模式打开文件,然后寻找其结尾。或者,您阅读文件的全部内容,添加您想要的内容,然后将所有内容全部写回。

f = open(..., "rb+")
f.seek(0, 2)
f.write(b"\nThis is a new line")
f.close()

顺便说一句,这条线甚至不需要存在。不要被文本编辑器显示文件的方式所迷惑。您将始终看到最后一行为空,以便您可以继续输入文本,这并不意味着空行已写入文件。这就是为什么我推荐 r+ 模式,您可以检查文件是否以 \n 或 \r 结尾,如果不是,请在添加行本身之前添加它。如果它已经有了它,只需编写文本。这样,如果有人在某个时候手动编辑了文件,您的脚本就不会出现空行。 检查例如:

size = f.seek(0, 2) # Seek to end
if size>0:
    f.seek(size-1)
if f.read() in b"\r\n":
    pass
else: f.write(b"\n")
f.write(b"new line")

【讨论】:

    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 2022-08-09
    • 1970-01-01
    相关资源
    最近更新 更多