os模块的报错问题,想请大佬们解决一下。谢谢了

鱼夏小朋友 2021-11-22 16:02:46

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

 

为什么执行会报错呢。请大佬们帮我看看解决下。谢谢!

...全文
685 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝多多的小仓库 2021-11-22
精选
  • 打赏
  • 举报
回复 2

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()
  • 打赏
  • 举报
回复 1

img

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

鱼夏小朋友 2021-11-23
  • 举报
回复 2
@蓝多多的小仓库 回复的第一时间就去看了代码,代码是一次就成功了,然后一直在找原因。所以一直没回复哈。最后发现是第二次循环从我c盘的路径去到了我py的当前路径,所以导致第二次循环找不到图片。 这段代码的第十行的currentpath = os.getcwd()就是定位到我py的文件夹里, os.chdir(r"C:\Users\15473\Desktop\test")就是定位到我的test文件夹里面。 所以第一次是在test执行,第二次在循环里面就变成了在py文件夹里面执行了。 所以第十行其实完全可以删除掉了哈。。 谢谢大佬的帮助!!!!

30,418

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧