不理解为何只会改到jpg文件而不动到其他类型文件
来源:2-14 项目作业
Michael_FCY
2024-02-11 20:55:32
import glob import shutil def update_name(path): result = glob.glob(path) for index, data in enumerate(result): if glob.os.path.isdir(data): _path = glob.os.path.join(data, '*') update_name(_path) else: path_list = glob.os.path.split(data) name = path_list[-1] # new_name = '%s_%s.'%(imooc_,index) new_name = '%s_%s.jpg' % ('imooc', index + 1) new_data = glob.os.path.join(path_list[0], new_name) print(new_data) shutil.move(data, new_data) if __name__ == '__main__': path = glob.os.path.join(glob.os.getcwd(), 'images') update_name(path)
上图为运行后效果。
这段代码为何可以实现只对jpg文件改名而不动到其他类型文件,这一点我不太理解。
1回答
同学,你好!因为传入要修改的路径就是images 文件夹。22行代码glob.os.getcwd()获取的值是C:\Users\10197\Desktop\IO操作\task\images,如红框。然后使用glob.os.path.join()函数将C:\Users\10197\Desktop\IO操作\task\images 与images 进行拼接,最后的路径是C:\Users\10197\Desktop\IO操作\task\images\images,如绿框
将路径C:\Users\10197\Desktop\IO操作\task\images\images作为参数传入到update_name函数中进行使用。在函数中使用glob.glob函数获取的路径也是:C:\Users\10197\Desktop\IO操作\task\images\images
使用for循环对路径进行判断,若是路径则递归函数,不是则修改文件名
所以只是对images 文件夹进行操作,只修改了.jpg文件
祝学习愉快~
相似问题
回答 1