OSError: [WinError 87] 参数错误。

本文介绍了在Python中批量修改文件名时遇到的问题,即使用time.strftime()函数格式化时间时,英文分号导致的OSError。解决方案是将分号改为中文分号或汉字'时分秒'。代码示例展示了如何遍历文件,获取文件创建时间并重命名文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做了一个python例题,批量修改文件名称,一直报错OSError: [WinError 87] 参数错误。修改了半天终于发现问题出在其中的格式化时间的函数,我用time.strftime()函数格式化时间,里面的时分秒之间的分号不能是英文的分号,改成中文分号就行了,而且好像也可以替换成汉字“时分秒”。
代码如下:

import os


def formatTime(longtime):
    import time
    return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(longtime))  # 不能用英文分号


path = r'批量改图片名称'  # 相对路径
tuples = os.walk(path)  # walk()函数遍历文件夹下的目录及文件
tuple1 = tuple(tuples)[0][2]  # 获取存储文件的元组
print(tuple1)
for str1 in tuple1:  # 循环遍历元组元素
    newpath = os.path.join(path, i)  # 将文件路径精确到文件名(原始文件名)
    fileinfo = os.stat(newpath)  # 获取文件基本信息
    createtime = formatTime(fileinfo.st_mtime)  # 格式化时间
    dst = os.path.join(path, createtime + '__' + str1)  # 新文件名
    if os.path.exists(newpath):  # 判断文件是否存在
        os.rename(newpath, dst)  # 重命名
print("改名成功")

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值