【python实现一键办公】批量将文件名称改为所在文件夹名称

目录

背景

破题思路

分析并还原问题

需求分析

具体思路

编写代码

运行代码


背景

*事情发生在前两天,和我的一个朋友闲聊(暂且称之为小A)。
小A:“对了,问你个问题哦”
我:“什么问题呐?”
小A:“最近负责的一项工作,需要把大批量的PDF文件转换成JGP格式,但转换后这个文件的名字乱码了,并且一个文件都单独存在一个文件夹内,文件夹是原本的文件名,有什么办法可以将文件名批量改成原来的名字,并把所有文件放在一个文件夹内吗?”

问题就是这样,最常规且传统的办法就是,进入文件夹并记住文件夹的名称–>选中文件,右键重命名–>将其移动到指定文件夹。

这样做少量的文件没有问题,但如果是大数据量,既耗时费力又枯燥无趣,那有快捷的办法吗?python写个小代码,即可解决。

那代码该怎样写呢,下面请看破题思路~~~*

破题思路

分析并还原问题

在得到一个问题时,我们要针对问题进行分析,并尽量还原出场景。
通过对小A的问题分析,我们可以模拟出这样一个现场

  • 现有1000个文件夹,每个文件夹不同名;
  • 每个文件夹内只有一个文件,文件名与文件夹不同名;

( 这里设置样本仅为4,进行还原)
请添加图片描述
请添加图片描述

需求分析

接下来,我们需要提炼出核心需求。

  • 将1000个文件名称改为所在文件夹名称,并存放在同一个文件夹内

具体思路

  1. 导入os模块,(即operation system)
  2. 指定这“4个文件夹”的根目录
  3. 获取此根目录下的所有文件
  4. 指定要更改名称的文件类型
  5. 遍历此目录下所有文件,找到指定类型文件
  6. 将文件夹名称赋值给该内部文件
  7. 将更改了名称的文件复制到根目录

编写代码

import os
from shutil import copyfile
path = 'D:\\合并工作文件夹\\1'      #文件的根目录,注意把复制过来的路径地址的“\”改为"\\"
files = os.listdir(path) #获取path目录下的所有文件
i = 0
file_type = '.docx'      #需要更改的文件类型
j = len(files)
for f in files:
    if os.path.isfile(os.path.join(path,f)) == False:   
        #判断是否为文件夹
        for n in os.listdir(os.path.join(path,f)):
            # 判断是否为指定类型的文件
            if os.path.splitext(n)[1] == str(file_type):
                # 文件夹名称赋值给文件
                newname = f+file_type  
                os.rename(os.path.join(path,f,n),os.path.join(path,f,newname))
                # 将文件从文件夹内复制到外层文件夹
                copyfile(os.path.join(path,f,newname),os.path.join(path,newname)) 
                i += 1
print(i)  
print(j)
# 如果输出的两个数字不相等,可能是没有指定类型文件,或某文件夹下非该类型文件

运行代码

那么看下效果吧,此时可以核对一下文件内容和之前是否一致,可根据需要将不需要的文件夹全选删除~~~

        

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值