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

Python Pandas处理CSV时为文件名追加时间报错求助

解决Pandas保存CSV时文件名含非法字符的报错问题

看起来你遇到的问题根源其实和变量final的内容有关,但不是变量本身的定义,而是文件名里包含了操作系统不允许的特殊字符。让我帮你拆解一下:

问题分析

你生成的currenttime用了格式%Y-%m-%d %H:%M:%S,这里面的空格和冒号是Windows/macOS/Linux等系统都不允许出现在文件名中的字符。当你把它拼接到final里,再传给df1.to_csv()时,系统会因为文件名非法而抛出错误——这就是为什么换其他不含特殊字符的变量能正常运行的原因。

而且你提到环境没有datetime/time库,用Pandas的pd.to_datetime('today')完全没问题,只需要调整时间字符串的格式即可。

修改后的代码

把时间格式里的空格和冒号替换成合法的字符(比如下划线_和连字符-),这样生成的文件名就符合系统要求了:

import os
import pandas as pd

csv1 = '(Compacted)_TrialCSV_08072020_113107.csv'
shortcsv = csv1[11:-19]
# 把时间格式里的空格换成下划线,冒号换成连字符,避免非法文件名
currenttime = pd.to_datetime('today').strftime('%Y-%m-%d_%H-%M-%S')
final = shortcsv + currenttime
df1 = pd.read_csv(csv1)

# 格式化DATETIME列
df1['DATETIME'] = pd.to_datetime(df1['DATETIME'], dayfirst=True).dt.strftime('%Y-%m-%d %H:%M:%S')
# 保存文件,文件名现在是合法的,建议加上.csv后缀确保格式识别
df1.to_csv('(Formatted)' + final + '.csv', index=False)
print("Datetime Conversion complete")

额外注意事项

  • 我在保存时额外加了.csv后缀,这样生成的文件会被系统正确识别为CSV格式,避免出现无后缀的模糊文件。
  • 如果你需要其他时间格式,只要确保不含/ \ : * ? " < > |这些系统禁止的字符即可。

内容的提问来源于stack exchange,提问作者Gurdish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:12:47