zoukankan      html  css  js  c++  java
  • Python重命名文件夹下的文件(包含子文件夹下的文件)

    这两天闲着无聊,看到福建疫情,然后想着停课的孩子们在家可能也会很无聊,可能就在家天天手机。所以想着爬些小孩子感兴趣的故事来玩儿。爬了一千多吧。部分截图如下:

     这是从网站爬下来的初始格式,没有去更改,对于有强迫症的我来说,文件名加后缀格式就可以了,文件名里有字符串 mp3是咋回事嘛。所以想着批量处理下。以下是处理代码:

    import os
    
    import sys
    
    dPath = 'X:故事世界著名童话' # 存储要修改文件名的文件夹
    
    files = os.listdir(dPath) # 先遍历
    
    n = 0 # 设置初始值
    for i in files: # 遍历文件
        oldfilename = dPath +'\' + files[n] # 获取旧的文件路径和名称
        # print(oldfilename) # 打印看是否符合预期
        if ' mp3' in oldfilename: # 我们加个判定条件吧
            newfilename = dPath + '\' + i.replace(' mp3', '') # 要改成的路径和文件名
            print(newfilename) # 打印看是否符合预期
            os.rename(oldfilename, newfilename) # 开始重命名
            print("已经将文件====>" + i + "更名为:" + newfilename) # 提示结果
        else:
            print('文件===> 【' + i + '】 无需整理!') # 如果条件里没有,我们就不整理了
        n += 1
    

      

    代码运行完才发现是处理了另一个子文件夹,没有处理到故事根文件夹下的所有子文件夹。效果如下:

     

    还得去写个处理二级文件夹下的批量改名还有处理批量解压的代码。

    ============================补充,将一个名为儿童故事的子目录所有文件进行重命名======================================

    最初始的文件夹结构是下面这样的

     然后子目录下的文件是下面这样的:

     

    # 补充之前的代码,只做了一个子文件夹,这不刚跑步回来,想了个简单的方法。贴代码。

    import os
    import sys
    
    def reName(dPath):
        # 读取该文件夹下的所有文件(包括文件夹)
        files = os.listdir(dPath)
        n = 0 # 初始化计值
        # 开始遍历文件
        for i in files:
            # 原来文件的路径和名称
            oldfilename = dPath + '\' + files[n]
    
            print(oldfilename)
            # 如果是文件夹就递归调用函数
            if os.path.isdir(oldfilename):
                reName(oldfilename)
            # 如果不是文件夹,我们就这样处理
            if ' mp3' in oldfilename:
                newfilename = dPath + '\' + i.replace(' mp3', '') # 我们将原来的文件名去掉mp3
                print(newfilename) # 打印看是否符合预期
                # 符合预期就就地重命名文件
                os.rename(oldfilename, newfilename)
                print('已经将文件名为====>【 ' + i + ' 】更改为:===>' + newfilename)
            else:
                print('文件名为========>【' + i + '】无需整理!' )
            n += 1
    
    filePath = 'X:故事'
    reName(filePath) #调用函数进行处理

    一运行呢,就把指定的filePath下的所有文件都重命名了。这里只是多做了个判定,判定如果是文件夹,就递归调用函数进行处理文件夹下的文件。

  • 相关阅读:
    LayoutInflater作用及使用--自定义EditText,自带清除内容按钮
    SSL backend error when using OpenSSL pycurl install error
    pypyodbc 的坑
    mongo aggregate 删除重复数据
    如何验证代理ip的正确性
    python的非官方的一个下载lib的地方
    rabbitmq web 管理系统的信息
    内存泄漏分析
    readme 语法
    logging dictconfig
  • 原文地址:https://www.cnblogs.com/mafu/p/15312080.html
Copyright © 2011-2022 走看看