You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:33:37