我有一个非常简单的函数,它只是一个数据写入列表,但每次写入需要5-10秒,所以该函数需要大约一个小时才能运行。因为没有循环,所以没有迭代变量。向用户更新进度的最佳方式是什么?
发布于 2017-09-18 03:29:29
你有没有考虑过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')您可能希望查看格式化日志消息的信息,这样就不必像我那样以一种优雅的方式包含日期时间字符串。
https://stackoverflow.com/questions/46267901
复制相似问题