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

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

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

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

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

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

零代码编程:用ChatGPT批量合并文件夹_第1张图片

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

在ChatGPT中输入提示词:

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

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

读取里面的子文件夹;

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

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

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

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

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

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

零代码编程:用ChatGPT批量合并文件夹_第2张图片

源代码生成如下:

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("所有文件处理完毕。")

零代码编程:用ChatGPT批量合并文件夹_第3张图片

合并后的文件夹如下:

零代码编程:用ChatGPT批量合并文件夹_第4张图片

零代码编程:用ChatGPT批量合并文件夹_第5张图片

你可能感兴趣的:(chatgpt)