问题:把某目录及其子目录下所有dat文件后缀改为txt
如果单改某一文件夹下的文件后缀,只需要批处理命令就能完成。如下
ren *.dat *.txt
利用python完成这样的功能需要引入os模块。思路是先遍历目录下所有文件,判断后缀是否dat,如果是就更改为txt。
代码如下:
##python批量更换后缀名
import os
# 列出当前目录下所有的文件
files = os.listdir('.')
print('files',files)
def renaming(files):
'''修改后缀'''
for filename in files:
name = os.path.splitext(filename)
# 如果后缀是.dat
if name[1] == ".dat":
# 重新组合文件名和后缀名
newname = name[0] + ".txt"
os.rename(filename,newname)
if __name__ == '__main__':
renaming(files)
当然,这段代码只能处理目录下的所有文件,对于子目录是没有办法的。
下一步希望成对目录下所有文件(包括子目录)进行处理。
思路:对目录进行递归
def listing(path):
files = os.listdir('.') # 获取当前目录下的文件和目录
for file in files:
file_path = os.path.join(path,file) #获取文件的路径
if os.path.isdir(file_path): #判断是否为文件夹
listing(file_path) #开始递归
else:
os.chdir(path) #修改工作地址
renaming(file)#修改后缀
这段代码可能有点问题,后续再更