Python实现文件批量复制 + 重命名的demo

同事要把一个文件夹的所有内容复制到新的文件夹中,用Python简单实现了。

1. 先复制(shutil库)

    src = 原目录, dst = 新的目录,根据自己需求更改。shutil.copytree()

import shutil
import os

#dst目录必须不存在才可以运行,如果存在可以再改个名字,全部复制之后再新建

src = "E:\\test"
dst = "E:\\testc"

os.chdir("E:\\")
shutil.copytree(src, dst)

2.批量重命名。用到re。

    新文件名根据自己需求改动。

import os
import re

path = r"E:\test"

fl = os.listdir(path)
print(fl)

for i in fl:
    oldname = os.path.join(path, i)
    new_name = re.sub("\d+", "", i)
    newname = os.path.join(path, new_name)
    os.rename(oldname, newname)

print("DONE")

3.最终将上面两步合并,一步到位。复制 + 重命名

import shutil
import os
import re
#cmd命令下直接输入 python 这个文件的路径\core.py  回车即可运行
#先复制所有src的所有文件,下一步批量修改复制后的文件名
#本程序是替换掉文件名中的所有数字

src = "E:\\test"       #src是你想复制的源文件的目录
dst = "E:\\testc"      #dst目录必须不存在才可以运行,如果存在可以先改个名字,结束之后再复制过去

#以下是copy步骤
os.chdir("E:\\")
print("开始copy")
shutil.copytree(src,dst)
print("copy成功")

#以下是rename步骤
fl = os.listdir(dst)    #遍历dst目录下所有文件
print(fl)       #这里是为了打印出所有的文件名,下面的f2也是此作用
print("开始rename")

for i in fl:
    oldname = os.path.join(dst, i)       #一定要有os.path.join方法,将路径也要加入到str中
    new_name = re.sub("\d+$", "", i)     #这里\d+是正则表达式中的匹配方法,将数字替换为空
    newname = os.path.join(dst, new_name)   #oldname和newname都必须是完整的路径
    os.rename(oldname, newname)
f2 = os.listdir(dst)                        #再次遍历目录,打印出更改后的所有文件名
print(f2)
print("rename成功")

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值