思路:
- 读取目录下文件的类型(os.listdir("…"))
- 分割文件名与文件类型,以 ‘点’ 为标准{os.path.splitext()}
- 把文件类型替换为自己想要的(.doc -> .docx)
- os.rename(oldpath, newpath) 方法
- 再打印目录下的文件
1.1 读取目录并切分
os.listdir
把字符串转为路径格式os.path.splitext
把文件分为文件名与文件属性,以最后一个 “点” 为分界线
work_dir = "D:\\test"
for filename in os.listdir(work_dir):
split_file = os.path.splitext(filename)
print("文件分割:",split_file) # 最后一个点切分
1.2 获取文件前后缀名
split_file[0] # 文挡名称
split_file[1] # 文档属性(后缀)
1.3 文件重命名思路
if old_ext == file_ext: # 如果文件属性.docx == .docx 则:
newfile = split_file[0] + new_ext # 文件名称 +(new_ext==.doc)组成新的文件
1.4 os.rename 实现重命名
os.rename( # 实现重命名操作
os.path.join(work_dir, filename ), # 文件路径不变
os.path.join(work_dir, newfile)) # 文件后缀变为 [new_ext]值-->.doc
1.5 批量修改文件属性
完整代码:实现把文件属性(.docx),改为(.txt)
def rename_dir(work_dir,old_ext,new_ext):
# old_ext, new_ext = '.docx', '.txt'
for filename in os.listdir(work_dir):
# 获取得到文件后缀
split_file = os.path.splitext(filename)
file_ext = split_file[1] # 把所有文件属性(.docx/.txt)赋给file_ext
if old_ext == file_ext: # 如果文件属性是 .docx 执行
newfile = split_file[0] + new_ext # 修改后的文件完整名称
os.rename( # 实现重命名操作
os.path.join(work_dir, filename ), # 文件路径不变
os.path.join(work_dir, newfile)) # 文件后缀变为 [new_ext]值
print("完成重命名")
print(os.listdir(work_dir)) # 打印修改后文件信息
return
rename_dir("D:\\test",".docx",".txt")