【问题标题】:Add new line to head of log file using Python使用 Python 将新行添加到日志文件的头部
【发布时间】:2012-01-26 10:02:21
【问题描述】:

我正在尝试在日志文件中的日期戳前添加新行。我有以下部分。

打开日志文件:

f = open("C:\Users\user\Desktop\Log.file")

在日期“25/01/2012”前面添加一个新行(唯一标识每个日志行)。

f.write("\n" + "25/01/2012")

错误:

Traceback (most recent call last): 
File "<pyshell#4>", line 1, in <module>
    f.write('\n' + "25/01/2012")
IOError: File not open for writing

【问题讨论】:

  • 你的意思是要在文件中间插入一行?

标签: python file-io newline


【解决方案1】:

open() 的python 文档中所示,默认模式是'r' 用于读取,而不是'w' 用于写入。尝试使用:

f = open("C:\Users\user\Desktop\Log.file", 'a')

打开您的日志文件进行写入(如果它已经存在则不删除它)

关于您的最终目标,即登录文件,您是否看过logging module,它允许您使用日期、级别、PID 和许多有用的东西来格式化所有日志记录?

【讨论】:

    【解决方案2】:
    f = open("C:\Users\user\Desktop\Log.file","w");
    

    默认为'r',即读取docs here

    注意:'w' 将覆盖现有文件。使用 'a' 追加

    【讨论】:

    • 谢谢。您是第一个注意到“w”会覆盖整个文件的人,这当然不是我想要做的。幸运的是,我复制了一份并注意到了您的回答。
    • @malcmcmul 好的,谢谢 :-) - 我建议您查看 Cédric Julien 的答案,因为他包含了一些关于正确日志记录的其他 cmets。
    【解决方案3】:
    open("C:\Users\user\Desktop\Log.file", "w")
    

    但请查看http://docs.python.org/library/logging.html 以使用 Python 进行日志记录。

    编辑:更好:http://docs.python.org/howto/logging.html#logging-basic-tutorial

    【讨论】:

      【解决方案4】:

      你需要f = open("C:\Users\user\Desktop\Log.file", "w")

      http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-09-09
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 2020-08-31
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        相关资源
        最近更新 更多