社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python私活案例】蚂蚁老师群里接了个私活,10分钟赚了100元,批量重命名文件!

蚂蚁学Python • 4 年前 • 909 次点击  

今天在蚂蚁学python的群里面,有同学提出了这样一个需求:

我一看有钱可以赚,立马来劲儿了,就接下了这一单。同学给我发来了具体的需求:“有一个文件夹folder,里面有5个文件夹,名称分别是A、B、C、D、E,这5个文件夹里面既有文件夹,还有.txt文件,如何重命名这五个文件夹中最后一层文件夹里面的txt文件(重要说明,只重命名最后一层里面的文件,不是最后一层的不用重命名),命名要求,原文件名字+对应的五个文件夹名字,如,A中最后一层文件夹的文件名是1.txtx,重命名后是,1_A.txt”

也就是说处理前的文件名是这样的:

处理后文件名变为这样:

其中,A是第一层文件夹的名字。

我马上想起了从帅帅老师那边学习长度如何用python中的os来处理文件实现办公自动化的知识,就是下面这一节:

再配合蚂蚁学python基础课中学过的对字符串的操作技巧,比如join函数、split方法等等,很快我就写出了以下代码:

import os
count = 0
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        foldernames = root.split('\\')
        if len(foldernames) == 5:
            src = os.path.join(root, name)
            print(src)
            foldername = foldernames[2]
            print(f'修改前:{name}')
            parts = name.split('_')
            new_name = parts[0]+'_'+foldername+'_'+parts[1]+'_'+parts[2]
            print(f'修改后:{new_name}')
            dst = os.path.join('./renamedFiles/', new_name)
            print(dst)
            count = count + 1
            try:
                os.rename(src,dst)
            except Exception as e:
                print(e)
                print('rename file fail\r\n')
            else:
                print(f'rename file success\r\n{count}')

当然,中间调试花了一些时间,因为我发现有一些文件是重复的,这个时候,就需要好用try-except语句进行处理了。运行程序之后,只花了0.3S的时间,就完成了120个文件的重命名,真的是好快呀。

最后展示一下成果:

也赚到了今天的零花钱:

人生苦短,我用pyhton, 节省时间还能赚钱,真的香!


  代码参考自:

蚂蚁老师的课程《Python处理Excel办公自动化》

扫码购买,加微信ant_learn_python答疑



  点击《阅读原文》也可以到达课程页面

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/122764