思路:

  1. 读取目录下文件的类型(os.listdir("…"))
  2. 分割文件名与文件类型,以 ‘点’ 为标准{os.path.splitext()}
  3. 把文件类型替换为自己想要的(.doc -> .docx)
  4. os.rename(oldpath, newpath) 方法
  5. 再打印目录下的文件
    在这里插入图片描述

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")

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐