文章标题:Python实现特定图片文件移动与恢复功能解析
这段代码实现了一个用于在指定的源文件夹及其子文件夹中筛选出图片文件,并将这些图片文件按照用户指定的位置移动到目标文件夹的工具,同时还具备将移动后的文件恢复到原位置的功能。
用户使用时,程序首先会提示输入源文件夹路径,这是存放待移动图片文件的起始位置。
接着要求输入目标文件夹路径,此为图片文件移动的目的地。
然后,用户需要输入要移动的文件的位置,这些位置数字需用空格分隔。
程序会对源文件夹及其所有子文件夹进行深度遍历(os.walk
)。
在遍历过程中,对于每个文件,先通过 is_image
函数判断是否为图片文件。
如果是图片文件,不管其处于源文件夹的哪一层子文件夹,都会按照自然排序(natural_sort_key
函数仅考虑数字序列来确定自然排序的关键字),依据用户输入的位置,将对应位置的图片文件移动到目标文件夹中,移动后的文件名保持不变。
移动完成后,程序会展示每个移动文件的原路径和目标路径。
之后,程序询问用户是否将移动的文件恢复到原位置。若用户输入 y
,程序会调用 restore_files
函数,把之前移动的文件按照记录的路径恢复到源文件夹的原位置;若输入 n
,则直接结束操作。
此代码对子文件夹有效,能够穿透子文件夹,对源文件夹及其所有层级的子文件夹内的图片文件进行操作。
以下是实例验证: 假设存在如下文件夹结构:
主文件夹
│
├── 源文件夹
│ ├── 文件夹 A
│ │ ├── img1.jpg
│ │ ├── img2.png
│ │ └── img3.jpeg
│ ├── 文件夹 B
│ │ ├── img4.gif
│ │ └── img5.webp
│ ├── img6.bmp
└── 目标文件夹
将上述代码保存并运行,当用户输入源文件夹路径为 “主文件夹/源文件夹”,目标文件夹路径为 “主文件夹/目标文件夹”,
并输入要移动文件的位置(例如 “1 3 5”)后,程序会把源文件夹及其子文件夹内按自然排序后的第1、3、5个图片文件,即 img1.jpg
、img3.jpeg
、img5.webp
,移动到目标文件夹中。移动完成后展示移动信息,询问是否恢复文件。
若选择恢复,这些文件会回到源文件夹的原位置;若不恢复则结束操作。
python版本:3.86
是否带UI界面:非UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 709-监测指定文件夹修改文件名为所在文件夹名称并移动到指定文件夹下
- 715-批量对指定文件夹下各子文件夹下所有子孙文件夹内文件提取-提取到各一级子文件夹根目录-并删除空文件夹
- 729-批量文件夹合并-搜索A文件夹下与B文件夹下同名的文件夹并将文件合并到B文件夹
- 756-对指定文件夹下文件及文件夹建立目录树-支持导出多种文件格式
- 785-批量重命指定文件夹内所有文件-指定名称+数字序列…形式
- 454-批量检测损坏pdf文件并移动到目标文件夹内
- 201-批量删除excell文件xlsx格式文件中的空行
- Windows 启用长路径支持
- 10083-批量解压rar分卷文件-txt中一行一个密码-自动匹配-解压完成后可选删除分卷
- 10084-批量解压7z分卷-【支持带密码的分卷-子文件夹穿透】【不支持多层嵌套分卷】
- 1开通VIP会员享全站内容免费查看
- 2🔥🔥🔥常见问题 | 售后问题 | 程序购买 | 会员开通等问题
- 3752-批量复制文件及文件夹到多个文件夹
- 410081-1-批量解压自解压文件-【支持密码-子文件穿透】【不支持嵌套自解压或压缩包解压】-除自解压文件外不能有其他exe文件
- 5790-批量统计各文件夹下文件类型数量及文件夹路径输出到excell
- 6网页插入bilibili哔哩哔哩视频
- 7401-批量识别pdf中二维码并替换为指定图片或覆盖白色
- 8使用本站程序过程如果遇到问题请查看该文章说明
- 9431-批量合并指定文件夹下各文件夹内pdf为一个pdf文件
- 10【起步式】从python环境配置到使用AI写出第一个python程序(python版本3.86)
还没有评论,来说两句吧...