Python IO遍历文件夹下的文件然后改名并移动到新目录

本文含有: 将A目录下的B目录里面的文件全部重命名为 `id` 开头,然后将文件移动到 `NewA` 目录下的 B目录。

作者: 134333.xyz

  • 目录结构是这样的

    • A文件夹>B文件夹>文件
  • 目的

    • 将 A 目录下的 B 目录里面的文件全部重命名为 id 开头,然后将文件移动到 NewA 目录下的 B 目录。
import shutil
import time
import atexit
import os

# 旧目录
path = r"D:\code\demo\python\demo\A"
# 新目录
newPath = r"D:\code\demo\python\demo\NewA"

# 切换工作目录
os.chdir(path)

start = time.time()
atexit.register(lambda: print('用时(秒):', time.time() - start))


def main():
    # i 是 A文件夹下的目录名称
    for i in os.listdir():
        # B目录的绝对路径
        abs_B = os.getcwd() + '\\'+i

        # 开始遍历B目录, j 是B目录下的文件名
        for j in os.listdir(abs_B):
            # 判断 New B目录是否存在
            if (os.path.exists(newPath+'\\'+i) == False):
                os.mkdir(newPath+'\\'+i)

            # 判断文件是否以id开头, 如果是则直接移动到新目录
            if (j.find('id') != -1):
                shutil.move(abs_B+'\\'+j, newPath + '\\' + i+'\\'+j)
            else:
                shutil.move(abs_B+'\\'+j, newPath + '\\' + i+'\\'+'id'+j)

        # 如果原本B目录为空则删除文件夹
        if (len(os.listdir(abs_B)) == 0):
            shutil.rmtree(abs_B)
            print('已删除文件夹: ' + abs_B)
        else:
            print('删除失败: ' + abs_B)


main()
Licensed under CC BY-NC-SA 4.0
本博客已稳定运行
发表了53篇文章 · 总计28.17k字
使用 Hugo 构建
主题 StackJimmy 设计