我有一个非常简单的函数,它只是一个数据写入列表,但每次写入需要5-10秒,因此该函数需要大约一个小时才能运行。由于没有循环,因此没有迭代变量。更新用户进度的最佳方法是什么?
答案 0 :(得分:0)
您是否考虑过logging
模块?您可以创建不同类型的处理程序来处理日志消息。这是一个简单的例子,但一般的想法是你可以把记录消息放在你的脚本中写入文件,打印到控制台的流,或其他东西。
import datetime
import logging
import time
logger = logging.getLogger('a_name')
logger.setLevel(logging.DEBUG)
sh = logging.StreamHandler() # prints to console
logger.addHandler(sh)
with open('/tmp/test_file.txt', 'w') as f:
logger.info('beginning writing file at ' + str(datetime.datetime.now()))
time.sleep(30) # this is a proxy for doing some file writing
logger.info('the time now is' + str(datetime.datetime.now()))
...
loggering.info('file done being written')
您可能希望查看格式化日志消息的信息,这样您就不必像我一样以优雅的方式包含datetime str。