其主要功能是将指定目录下的所有文件和子文件夹向上移动一层,并在移动完成后删除原目录。如果遇到无法移动或删除的情况,会在控制台输出相应的错误信息。用户可以选择是否重复进行此操作。
用户使用该工具时,程序首先会打印作者相关信息,包括在线印刷打印服务网址、定制小工具的微信联系方式以及定制费用说明。之后,用户按以下步骤操作:
- 输入要移动的目录路径:在“请输入要移动的目录路径:”的提示后,用户需准确输入要处理的目录路径。该目录下的所有文件和子文件夹都将被向上移动一层。
输入完成后,程序开始执行操作:
- 获取父目录路径:程序通过
os.path.abspath和os.path.join函数获取指定目录的父目录路径。如果父目录路径与用户输入的目录路径相同,说明已经到达最高层目录,程序会输出“已移动至最高层目录”并结束当前递归。 - 遍历并移动文件和文件夹:程序使用
os.listdir函数遍历指定目录内的所有文件和文件夹。对于每个文件或文件夹,首先拼接其完整路径。如果是文件夹,则递归调用move_to_parent_dir函数,将该子文件夹内的所有内容向上移动一层。如果是文件,程序尝试使用os.rename函数将其移动到父目录,并在控制台打印“已移动文件:[原文件路径] -> [新文件路径]”的信息。如果移动过程中出现错误,会捕获OSError并在控制台输出“移动文件[原文件路径]失败:[错误信息]”。 - 删除原目录:在移动完所有文件和子文件夹后,程序尝试使用
os.rmdir函数删除原目录,并在控制台打印“已移除目录:[原目录路径]”的信息。如果删除过程中出现错误,同样会捕获OSError并在控制台输出“移除目录[原目录路径]失败:[错误信息]”。
完成一次操作后,程序会询问“是否继续操作?(Y/N):”。若用户输入“y”(不区分大小写),则会重新提示用户输入要移动的目录路径,开始新一轮的操作;若输入其他内容,程序结束运行。
例如,假设存在如下文件夹结构:
主文件夹
│
├── 文件夹 A
│ ├── file1.txt
│ ├── subfolder1
│ │ ├── file2.jpg
│ │ └── subfolder2
│ │ ├── file3.png
│ │ └── subsubfolder1
│ │ ├── file4.docx
│ └── file5.txt
└── 文件夹 B
用户运行程序,输入“主文件夹/文件夹A”作为要移动的目录路径。程序会将“文件夹A”内的“file1.txt”和“subfolder1”向上移动一层到“主文件夹”。对于“subfolder1”,会递归将其内部的“file2.jpg”、“subfolder2”及其内部文件也向上移动一层。移动完成后,“文件夹A”变为空目录,程序尝试将其删除。操作过程中会在控制台输出每个文件的移动信息以及目录的删除信息。之后询问用户是否继续操作,若选择“y”,可重新输入路径进行新一轮操作;若选择其他内容,程序结束。
python版本:3.86
是否带UI界面:非UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 热评文章
- 1712-批量按照指定前缀或后缀格式在指定文件夹创建文件夹-只需要输入前后缀和起始序列即可
- 2729-批量文件夹合并-搜索A文件夹下与B文件夹下同名的文件夹并将文件合并到B文件夹
- 3763-批量删除整理多层文件夹冗余
- 4775-批量移动指定文件夹下指定格式文件到目标文件夹
- 5787-批量判断指定文件夹下文件的真实文件类型并修改
- 6790-批量统计各文件夹下文件类型数量及文件夹路径输出到excell
- 710046-4-批量为视频添加旋转的图片水印
- 8305-批量去除图片水印
- 910042-从众多图片中找到包含人像的图片移动到指定文件夹
- 1010089-0-合并各个文件夹内所有图片为gif-存储在各文件夹内以文件夹名命名-自定义速度-可选自定统一尺寸




还没有评论,来说两句吧...