Python datetime strftime生成文件名时分秒全为0如何修复
问题根因
date.today()返回的是仅存储年、月、日信息的date类型对象,本身不携带时、分、秒字段,调用strftime做格式化时,%H/%M/%S三个时分秒占位符取不到对应值,会默认返回0,最终生成的文件名时间部分时分秒就全显示为0。
另外原代码里路径拼接还有个隐藏问题:C:/folder后面没加路径分隔符,拼接后实际路径会变成C:/folder2022-06-13-00-00-00.txt,文件会直接存到C盘根目录,不会进入预期的folder文件夹。
修复方法
把获取时间的接口换成datetime.now(),它返回的datetime类型对象包含完整的年、月、日、时、分、秒信息,格式化后就能得到正确的时间串,同时修正路径拼接的问题。
修复后可直接运行的代码:
from datetime import datetime import os # 生成带完整时分秒的时间字符串 time_str = datetime.now().strftime("%Y-%m-%d-%H-%M-%S") # 规范拼接文件路径,避免分隔符缺失问题 save_path = os.path.join("C:/folder", f"{time_str}.txt") with open(save_path, "w", encoding="utf-8") as f: f.write("Something")
如果不想导入os模块做路径拼接,也可以手动在文件夹路径末尾补斜杠,把路径部分写成r'C:/folder/' + time_str + '.txt'即可。
内容的提问来源于stack exchange,提问作者nikita1221
相关产品推荐
相关产品推荐

