Python中使用日期时间戳作为文件名触发AttributeError报错如何解决
问题原因
- 语法使用错误:你写的
'dt'.txt会被Python解析为「获取字符串'dt'的txt属性」,字符串类型本身没有内置txt属性,因此触发AttributeError。 - 你此处的需求是将dt变量存储的时间字符串和
.txt后缀拼接作为文件名,而非使用固定的dt字符串作为文件名前缀,不能将变量名用引号包裹。
修复方案
首先修正文件名拼接逻辑,同时建议修改时间格式避免系统文件名非法字符问题:
- 调整时间格式,替换文件名不允许的冒号
:为下划线_(冒号在Windows、NTFS/exFAT分区中属于非法文件名字符,会导致保存失败) - 用f-string或者加号拼接变量和后缀
正确示例代码:
import datetime # 调整时间格式,移除非法字符 dt = datetime.datetime.now().strftime("%m.%d.%Y - %H_%M") print(dt) # 拼接文件名,这里dt是变量,不要加引号 p = open(f"{dt}.txt", "w+") # 操作完文件后记得调用p.close()关闭文件,避免资源泄漏
额外优化建议
- 处理文件优先用
with上下文管理器,会自动关闭文件,无需手动调用close方法,写法如下:
with open(f"{dt}.txt", "w+") as p: # 这里写对文件的操作逻辑 p.write("测试内容")
- 如果是保存照片的场景,把后缀对应改成
.jpg/.png即可,拼接逻辑不变。
内容的提问来源于stack exchange,提问作者3sixty bubba
相关产品推荐
相关产品推荐

