使用变量生成文件路径/名称时Pandas to_csv抛出OSError错误求助
问题解决:文件名含非法字符导致OSError
- 问题根源:你生成的文件名里包含
:(比如错误信息里的13:24:16),Windows文件系统禁止在文件名中使用冒号,这就是触发Errno 22错误的直接原因。 - 解决方案:把时间格式化字符串里的冒号替换成合法字符,比如横杠
-或者点.即可。 - 修改后的代码示例:
from datetime import datetime Coach = df['Followed By Coach'].iloc[0] output_FilePath = 'test_outputFilePath/' # 将时间格式里的冒号替换为横杠,避免非法字符 output_FileName = f'testfilenameprefix - {Coach} - {datetime.now().strftime("%Y%m%d %H-%M-%S")}' df_combined.to_csv(f'{output_FilePath}{output_FileName}.csv', sep=',', na_rep='', index=False)
- 额外提示:除了冒号,Windows文件名还不能包含
\/:*?"<>|这些字符,后续动态生成文件名时要注意规避这类非法字符。
内容的提问来源于stack exchange,提问作者Lord Bobbymort
相关产品推荐
相关产品推荐

