|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面代码想更改文件扩展名,但只能更改当前目录下的文件,不能更改子目录下的文件,求指教
- # -*- coding: cp936 -*-
- import os
- a=input("更改前的扩展名:")
- b=input("更改后的扩展名:")
- files= os.listdir()
- for filename in files:
- li=os.path.splitext(filename)
- if li[1]==a:
- newname=li[0]+b
- os.rename(filename,newname)
复制代码
本帖最后由 yongxi 于 2017-5-27 00:02 编辑
修改思路: 既然要改子目录,那么很有可能子目录里面还有N个子目录。所以最佳方式就是写一个递归函数解决问题
修改后如下:
- import os
- def change(mulu):
- files= os.listdir(mulu) # 获取当前层级目录文件名列表
- for filename in files:
- if os.path.isdir(mulu+'\\'+filename): # 判断文件是否是一个目录
- change(mulu+'\\'+filename) # 如果是目录,则用该目录作为形参再次调用函数change
- else: #如果不是目录,则改扩展名
- li=os.path.splitext(filename)
- if li[1]==a:
- newname=li[0]+b
- os.rename(mulu+'\\'+filename,mulu+'\\'+newname) # 修改的文件请加上完整的路径,不然提示找不到该文件
- ml_1 = os.getcwd() #获取当前脚本所在目录
- a=input("更改前的扩展名:")
- b=input("更改后的扩展名:")
- change(ml_1) #以当前脚本所在目录为形参调用函数change
复制代码
一:
写代码最好养成写注释的习惯。
二:
如若解惑,请给最佳评价,谢谢。
|
|