Python如何将列表写入日志文件?含排序需求及报错修复
解决日期列表排序写入日志的问题
咱们先拆解下你遇到的两个核心问题:
1. 为什么会报TypeError?
你代码里的output.write(dates_to_process + '\n')是直接把列表和字符串做拼接,Python可不允许这么干——列表只能和列表相加,字符串只能和字符串相加,这就是报错的根源。
2. 如何实现「去重+按时间排序+写入日志」的需求?
因为你的日期是YYYYMMDD格式的字符串,这种格式的好处是直接按字符串排序就等于按时间排序,不用额外转日期对象。咱们一步步来:
步骤1:处理日期列表(去重+排序)
用set去重,再转成列表后排序:
# 去重:把列表转成集合自动去重,再转回列表 unique_dates = list(set(dates_to_process)) # 排序:YYYYMMDD格式字符串直接排序就是时间顺序 sorted_dates = sorted(unique_dates)
步骤2:修复文件写入逻辑
把排序后的列表转成空格分隔的字符串,再写入文件:
log_location = "your_log_file.log" # 替换成你的实际日志路径 dates_to_process = ['20201203', '20201201', '20201203'] with open(log_location, 'a') as output: # 判断文件是否为空,为空则写入表头 if output.tell() == 0: output.write('Date last Run\n') # 把排序后的日期列表转成空格分隔的字符串,再加换行符 output.write(' '.join(sorted_dates) + '\n')
最终效果
运行后日志文件内容会是:
Date last Run 20201201 20201203
(注:原问题预期里的20201202未出现在输入列表中,所以实际输出为去重排序后的真实结果)
内容的提问来源于stack exchange,提问作者TangerCity
相关产品推荐
相关产品推荐

