Python 更改文件夹,文件名等操作实现将文件夹中的文件上移一层

Python 更改文件夹,文件名等操作实现将文件夹中的文件上移一层

用慕课下载器下载完视屏后,所有的文件全部都单独在各自文件夹中,想到看的时候要换文件夹就觉得脑壳疼,于是用 Python 写代码把文件移出来

  1. 先将各个章节文件夹下的各个文件夹改名,方便后面读取
# 将文件夹改名为递增的数字
import os

path = 'G:\\慕课下载器\\学无止下载器-v1.5.0\\Download\\高分必备-20小时精通高数上\\{1}--课程\\'  # 文件路径,路径上的所有 \ 均要写两个,一定要在最后加上 \\
dirs = os.listdir(path)  # 获取当前路径下的所有文件
count = 1  # 用这个给文件夹起名,方便后面遍历
for i in dirs:  # 遍历所有当前路径下的文件
    print(i)
    absolutepath = path + i     # 踩坑:os.listdir(0)得到的 list 中的文件名不能直接用于os.path.isdir()、os.path.isfile()
    if os.path.isdir(absolutepath):     # os.path.isdir(path),path只能是绝对路径
        oldname = path + i
        newname = path + str(count)
        os.rename(oldname, newname)
        print("%s====>>>%s" % (oldname, newname))
        count += 1
  1. 从总目录到视屏文件有两层文件夹,接下来的步骤可以写两层循环,我自己只写了一层

    # 在上面已经改好的数字名文件中去把所有文件上移一层
    # 其实就是改名的操作
    import os
    
    path = 'G:\\慕课下载器\\学无止下载器-v1.5.0\\Download\\高分必备-20小时精通高数上\\{1}--课程\\4\\'  # 文件路径,因为只写了一层,要想将所有单元的文件全部一出来就得手动改最后一个路径
    dirs = os.listdir(path)  # 获取当前路径下的所有文件,得到的是文件夹
    count = 1
    for i in dirs:  # 遍历所有当前路径下的文件
        print(i)
        absolutepath = path + i + "\\"  # 加上两个 \ 为了后面能够直接将文件名加到最后形成完整的路径
        if os.path.isdir(absolutepath):
            list = os.listdir(absolutepath)
            for j in list:
                oldname = absolutepath + j
                newname = path + j
                os.rename(oldname, newname)
                print("%s====>>>%s" % (oldname, newname))
        count += 1
    
    1. 到这里就已经完成了我最初的目的了。以下是顺带记录一下

    2. 写完发现原来的文件夹还在,,,,来加一个删除文件夹的

      # 目的是删除空文件夹
      import os
      
      path = 'G:\\慕课下载器\\学无止下载器-v1.5.0\\Download\\高分必备-20小时精通高数上\\{1}--课程\\4\\'  # 指定路径
      dirs = os.listdir(path)  # 遍历指定路径下的所有文件
      # 判断是文件还是文件夹,文件夹则判断是否为空,删除空文件夹
      for i in dirs:
          if os.path.isdir(path + i):   # 判断是否为文件夹
              if not os.listdir(path + i):  # 判断是否为空
                  os.removedirs(path+i)     #该命令只能删除空目录
                  # shutil.rmtree(path + i)  # 该命令可递归删除文件夹,慎用!!该文件夹和文件夹里面所有内容会被删除.
                  print("%s目录 已删除" % i)
              # else:  # 如果不是文件夹,则为文件
              #     os.remove(path + i)  # 该命令删除文件
              #     print("%s文件 已删除" % i)
      
    3. 批量更改文件名、文件后缀

      import os
      import re 
      
      path = 'G:\\PythonFile\\PythonFile\\11\\'  # 文件路径
      dirs = os.listdir(path)  # 获取当前路径下是所有文件
      for i in dirs:  # 遍历所有当前路径下的文件
          fname = re.findall('(.*)\.', i)
          type = re.findall('(\..*)', i)
          # fname和type分别获取了当前路径下文件的文件名和文件格式
      
          newfname = (" ").join(fname)     #想改文件名在这里
          newtype = ("").join(".txt")		#改文件后缀在这里
          # *re.findall*获取出来的是列表,修改文件名时候会报错,用join函数将他们转换为字符串
          oldname = path + i     # 原来文件的名称 (路径 + 文件名)
          newname = path + newfname + newtype    #(路径 + (新名称) + 文件格式)
          os.rename(oldname, newname)  # os模块的rename函数 修改名字(旧名字,新名字)
          print("%s====>>>%s" % (oldname, newname))
      
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值