• 零代码编程:用ChatGPT批量合并文件夹


    一个文件夹里面有很多个子文件夹,其中一些是互相配对的,比如:

    动物寓言王国_合作力量大 (上)国英语版

    动物寓言王国_合作力量大 (下)国英语版

    动物寓言王国-狮子与猎狗 (上)-国英双语版

    动物寓言王国-狮子与猎狗 (下)-国英双语版

    想要把这些能够配对的子文件夹进行合并,怎么利用ChatGPT来操作呢?

    在ChatGPT中输入提示词:

    你是一个Python编程专家,要完成一个批量合并文件夹的任务,具体步骤如下:

    打开文件夹:C:\迅雷下载\动物寓言王国\动物寓言王国;

    读取里面的子文件夹;

    如果2个子文件夹名称的前12个字符一致,而且一个子文件夹名称里面包含“(上)”,另外一个子文件夹名称里面包含“(下)”,那么把这两个子文件夹看作为一对子文件夹;

    用子文件夹名称的前12个字符作为文件夹名称,创建一个新文件夹;

    移动这一对子文件夹里面的所有文件到这个新文件夹;

    文件移动完成后,删除两个子文件夹里面的所有文件;

    注意:每一步都要输出相关信息;

    如果一对子文件夹中有相同名称的文件,那么在移动之前进行重命名,在同样名称文件的后面加上一个字符“(1)”

    源代码生成如下:

    import os

    import shutil

    # 文件夹路径

    folder_path = "C:\\迅雷下载\\动物寓言王国\\动物寓言王国"

    # 子文件夹列表

    subfolders = [f.name for f in os.scandir(folder_path) if f.is_dir()]

    # 对子文件夹列表进行排序,以便可以按名称的前12个字符进行配对

    subfolders.sort()

    # 遍历所有子文件夹

    i = 0

    while i < len(subfolders) - 1:

    # 获取子文件夹名称的前12个字符

    prefix1 = subfolders[i][:12]

    prefix2 = subfolders[i+1][:12]

    # 检查是否是一对子文件夹

    if prefix1 == prefix2 and (("(上)" in subfolders[i] and "(下)" in subfolders[i+1]) or ("(上)" in subfolders[i+1] and "(下)" in subfolders[i])):

    # 创建新文件夹

    new_folder_path = os.path.join(folder_path, prefix1)

    if not os.path.exists(new_folder_path):

    os.mkdir(new_folder_path)

    print(f"创建新文件夹:{new_folder_path}")

    # 移动两个子文件夹内的所有文件到新文件夹

    for j in range(2):

    for filename in os.listdir(os.path.join(folder_path, subfolders[i+j])):

    src = os.path.join(folder_path, subfolders[i+j], filename)

    dst = os.path.join(new_folder_path, filename)

    # 如果文件已存在,重命名文件

    if os.path.exists(dst):

    filename, ext = os.path.splitext(filename)

    filename += "(1)" + ext

    dst = os.path.join(new_folder_path, filename)

    print(f"重命名文件:{src} 到 {dst}")

    shutil.move(src, dst)

    print(f"移动文件:{filename} 到 {new_folder_path}")

    # 删除两个子文件夹

    for j in range(2):

    shutil.rmtree(os.path.join(folder_path, subfolders[i+j]))

    print(f"删除子文件夹:{subfolders[i+j]}")

    # 跳过下一个子文件夹

    i += 2

    else:

    i += 1

    print("所有文件处理完毕。")

    合并后的文件夹如下:

  • 相关阅读:
    第十章_祖冲之_圆周率
    LeetCode220801_65、寻找两个正序数组的中位数
    SpingMvc入门
    Worthington酶促细胞收获&细胞粘附和收获
    数据分析—将txt文件转为csv文件;将csv文件转为xls文件
    Ansible Tower对接ldap和git仓库
    扎实打牢数据结构算法根基,从此不怕算法面试系列之008 week01 02-08 通过常见算法,对常见的时间复杂度做梳理
    uni-app开发
    XXE漏洞中DOCTYPE、ENTITY傻傻分不清-WEB安全基础入门—XML外部实体注入(XXE)
    【Vue组件之间的三种通信】
  • 原文地址:https://blog.csdn.net/AIGCTribe/article/details/134267289