python - 关于使用 python 写入日志文件的建议

标签 python

我有一些代码需要每 10 秒写入大约 20 个字节的数据。 我在 Windows 7 上使用 python 2.7

你们推荐任何“对操作系统/硬盘驱动器压力最小”的方法来做到这一点?

我正在考虑用 10 秒打开和关闭同一个文件:

f = open('log_file.txt', 'w')
f.write(information)
f.close()

或者我应该保持打开状态,只flush() 数据而不是经常关闭它?

sqllite 怎么样?与打开和关闭文件操作相比,它会提高性能并降低强度吗? (它不只是一个平面文件数据库所以 == 还是文本文件......?)

mysql 怎么样(这使用本地服务器/进程..不确定何时/如何将数据保存到硬盘的具体细节)?

我只是担心不会炸毁我的硬盘驱动器并提高此日志记录程序的性能。我将每 10 秒收到一次新的日志信息,并且每天 24 小时 7 天 24 小时不间断进行。 你的建议?

即:想想像 utorrent 这样的程序,需要在很长一段时间内不断地保存大量数据,(我的日志文件的数据明显少于那些在像 utorrent 这样的“下载器类型程序”中写入的数据)

import random
import time


def get_data():
    letters = 'isn\'t the code obvious'
    data = ''
    for i in xrange(20):
        data += random.choice(letters)
    return data

while True:
    f = open('log_file.txt', 'w')
    f.write(get_data())
    f.close()
    time.sleep(10)

我的 CPU 在大约 15 秒后开始发出呜呜声……(或者是我的硬盘?)

最佳答案

正如预期的那样,python 附带了一个很好的工具,看看 logging模块

关于python - 关于使用 python 写入日志文件的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6157781/

相关文章:

Python性能特点

python - 在Python中获取/过滤与属性/键匹配的对象列表中的第一项

python - 如何从scrapy中获得好的结果

python - 将一个名称链接到另一个名称

python - 无法获取按钮来切换 pygame 中的更改

python 模拟 : mock. patch.object 陷阱

python - Pandas 'count(distinct)' 等效

python - 'MyApp' 没有属性 'label_text' 是什么意思?在哪里添加 label_text?

python - 根据部分字符串去除冗余字符串

python 线程 - 请解释一下