【以下回答由 GPT 生成】
import os
import shutil
import glob
from tqdm import tqdm
def move_files():
# 获取输入的检索路径
search_path = input("请输入检索路径: ")
# 检索所有.py文件,包括子文件夹和深度层次
file_list = glob.glob(os.path.join(search_path, '**/*.py'), recursive=True)
# 创建目标文件夹
target_folder1 = '/storage/emulated/0/代码/代码/'
target_folder2 = '/storage/emulated/0/代码/代/'
os.makedirs(target_folder1, exist_ok=True)
os.makedirs(target_folder2, exist_ok=True)
# 移动文件
repeat_count = 0
for file in tqdm(file_list, desc='Moving files'):
file_name = os.path.basename(file)
new_file1 = os.path.join(target_folder1, file_name)
new_file2 = os.path.join(target_folder2, file_name)
if os.path.exists(new_file1) or os.path.exists(new_file2):
repeat_count += 1
# 对重复文件进行标记
file_name_parts = os.path.splitext(file_name)
new_file1 = os.path.join(target_folder1, f"重复文件{repeat_count}_{file_name_parts[0]}{file_name_parts[1]}")
new_file2 = os.path.join(target_folder2, f"重复文件{repeat_count}_{file_name_parts[0]}{file_name_parts[1]}")
shutil.move(file, new_file1)
shutil.move(file, new_file2)
# 打印信息
print(f"共移动了{len(file_list)}个文件")
if repeat_count > 0:
print(f"有{repeat_count}个文件是重复文件")
move_files()
请按照要求输入检索路径,代码将会递归地检索指定路径下的所有.py文件,并将这些文件移动到 /storage/emulated/0/代码/代码/
和 /storage/emulated/0/代码/代/
文件夹中。如果文件已经存在于目标文件夹中,则会进行标记并移动。进度条会显示文件移动的进度,最后会打印出移动了多少个文件和有多少个文件是重复文件。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^