30,418
社区成员
发帖
与我相关
我的任务
分享
import os
import re
import sys
def renameall():
fileList = os.listdir(r"C:\Users\ASUS\Desktop\test")
print("修改前:"+str(fileList))
currentpath = os.getcwd()
os.chdir(r"C:\Users\ASUS\Desktop\test")
# a = '20200317_'
n = 0
for fileName in fileList:
n += 1
a = '20200317_'
pat=".+\.(jpg)"
pattern = re.findall(pat,fileName)
a = a + str(n)
os.rename(fileName,(a +'.'+pattern[0]))
print("---------------------------------------------------")
os.chdir(currentpath)
sys.stdin.flush()
print("修改后:"+str(os.listdir(r"C:\Users\ASUS\Desktop\test")))
renameall()
这个是报错信息:
代码第一次循环是能运行成功的,第二次循环到os.rename就报错了。
这个是debug截图:
这个是第一次循环

这是第二次循环:

a和pattern还有fileName的值都是没问题。
改后的文件名应该就是a.jpg
为什么执行会报错呢。请大佬们帮我看看解决下。谢谢!
import os
import re
import sys
def renameall():
fileList = os.listdir(r"C:\Users\15473\Desktop\test")
print("修改前:" + str(fileList))
currentpath = os.getcwd()
os.chdir(r"C:\Users\15473\Desktop\test")
# a = '20200317_'
n = 0
for fileName in fileList:
n += 1
a = '20200317_'
pat = ".+\.(jpg)"
pattern = re.findall(pat, fileName)
a = a + str(n)
os.renames(fileName, (a + '.' + pattern[0]))
print("重命名成功")
#os.chdir(currentpath)
sys.stdin.flush()
print("修改后:" + str(os.listdir(r"C:\Users\15473\Desktop\test")))
renameall()

问题解决了哈,具体为什么希望你自己百度百度会比我直接告诉你收获更多。