python读取vivo手机截图,将满屏图片文件移动别的路径

问题之初

在这里插入图片描述

python读取vivo手机截图,
将满屏图片文件移动别的路径

在这里插入图片描述
好多这样的图片,占用手机大量的内存,食之无味弃之可惜!那么会复制粘贴👀代码的我们我们今天就把这些图片筛选清理掉。

这段代码

原有逻辑的基础上,加入了一些有趣的注释,以提升代码的可读性和娱乐性。希望您喜欢这个可爱又有趣的版本!

from PIL import Image  # 导入一个能处理图片的库
import os  # 导入操作系统模块
import shutil  # 导入用于移动文件的库image_path = input("请输入图片路径:")  # 提示用户输入图片路径try:image = Image.open(image_path)  # 打开指定路径的图片width, height = image.size  # 获取图片的宽度和高度print("图片尺寸大小:{}x{}".format(width, height))  # 输出图片尺寸信息,告诉用户有多大
except FileNotFoundError:print("找不到指定的图片文件。")  # 如果找不到文件,就跟用户开个玩笑说找不到了source_folder = '/storage/emulated/0/Pictures/'  # 原始文件夹路径
target_folder = '/storage/emulated/0/Pictures/图片要删除/'  # 目标文件夹路径# 创建目标文件夹(如果不存在),告诉用户我们会在哪放被移除的图片
if not os.path.exists(target_folder):os.makedirs(target_folder)print("目标文件夹已创建,准备将相同尺寸的图片移动到这里~")for filename in os.listdir(source_folder):  # 遍历原始文件夹中的所有文件file_path = os.path.join(source_folder, filename)  # 文件的完整路径if os.path.isfile(file_path):  # 如果是文件而不是文件夹try:image = Image.open(file_path)  # 再次打开文件,准备获取尺寸if image.size == (width, height):  # 如果和用户输入的图片尺寸一样shutil.move(file_path, target_folder)  # 将文件移到目标文件夹print("找到一张和指定图片尺寸相同的图片,已经移动到目标文件夹了~")except:pass  # 不处理无法打开的文件print("任务完成!希望您喜欢这段可爱优雅诙谐机智的代码~")

这个完整的代码可以直接复制粘贴到Python环境中,然运行。
在这个过程中,请将image_pathsource_folder变量的值替换为您使用的路径。

第2种方法

哎呀,手机📱在充电!
在这里插入图片描述

from PIL import Image  # 导入PIL库,用于处理图片
import os  # 导入os库,用于操作文件和目录
import shutil  # 导入shutil库,用于移动文件
from tqdm import tqdm  # 导入tqdm库,用于显示进度条# 读取输入图片的尺寸
image_path = input("请提供可爱的图片:")
if not os.path.exists(image_path):image_path = "/storage/emulated/0/Pictures/Screenshots/Screenshot_20231005_1 30732.jpg"if not os.path.exists(image_path):print("找不到可爱么文件,请重新输入地址。")exit()try:with Image.open(image_path) as img:width, height = img.sizeprint(f"输入图片的尺寸:{width}x{height},非常可爱优雅!")
except FileNotFoundError:print("找不到指定的图片文件,请重新输入路径。")exit()# 读取并创建源文件夹和目标文件夹
source_folder = input("请输入一张可爱图片的源文件夹路径:")
if not os.path.exists(source_folder):source_folder = "/storage/emulated/0/Pictures/Screenshots"if not os.path.exists(source_folder):print("找不到源文件夹,请检查路径是否正确。")exit()target_folder = input("请输入一个要移动可爱尺寸图片的目标地址:")
if not os.path.exists(target_folder):target_folder = "/storage/emulated/0/Pictures/图片要删除"if not os.path.exists(target_folder):os.makedirs(target_folder)print("目标文件夹已成功创建!")# 遍历源文件夹,查找所有与输入图片尺寸相同的美丽图片,并移动到目标文件夹中
moved_count = 0
for root, dirs, files in tqdm(os.walk(source_folder), desc='正在搜寻“可爱尺寸”的图片', unit="张"):for filename in files:filepath = os.path.join(root, filename)try:with Image.open(filepath) as img:if img.size == (width, height):# 如果图片尺寸相同,则将它移动到目标文件夹中shutil.move(filepath, os.path.join(target_folder, filename))moved_count += 1except Exception as e:print(f"哎呀,发生了一个小错误:{str(e)}")passprint(f"已成功移动 {moved_count} 张美丽的图片到目标文件夹!请欣赏它们的优雅姿态。")

图片

在这里插入图片描述
在这里插入图片描述

直接回车

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/95595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(二)之知识收集阶段

前面学习了模型的构建与训练过程,然而在实验过程中,博主依旧对数据集与模型之间的关系有些疑惑,首先是论文说这是一个混合数据集,但事实上博主在实验时是将三个数据集分开的,那么在数据读取时是如何混合的呢&#xff0…

林沛满-Wireshark的提示

本文整理自:《Wireshark网络分析的艺术 第1版》 作者:林沛满 著 出版时间:2016-02 最近有不少同事开始学习 Wireshark,他们遇到的第一个困难就是理解不了主界面上的提示信息,于是跑来问我。问的人多了,我也…

如何一步步优化负载均衡策略

发展到一定阶段后,Web 应用程序就会增长到单服务器部署无法承受的地步。这时候企业要么提升可用性,要么提升可扩展性,甚至两者兼而有之。为此,他们会将应用程序部署在多台服务器上,并在服务器之前使用负载均衡器来分配…

第10章 MySQL(二)

10.11 请你说下你对ACID的理解 难度:★ 重点:★★ 白话解析 前面的题目搞明白了MySQL的原理、架构和索引,那接下来,我们捋一捋SQL在执行过程中的最核心的问题了——事务问题。 先搞明白事务的4个特性。 参考答案 1、A(Atomicity):原子性,就是一堆的SQL操作要么全部…

华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 运行内存情况 服务器被非法登陆尝试的解决

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍SpringCloud相关组件——nacos和sentinel的安装和配置,并分析了运行内存情况,此…

数据在内存中的存储(1)

文章目录 目录1. 数据类型介绍1.1 类型的基本归类 2. 整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习 附: 目录 数据类型介绍整形在内存中的存储大小端字节序介绍及判断浮点型在内存中的存储 1. 数据类型介绍 前面我们已经学习了基本的内置类型以…

【数据结构】数据结构基础概念

系列文章目录 第一章:【数据结构】数据结构基础概念 文章目录 系列文章目录前言简介名词解释数据数据元素数据项数据对象数据结构数据类型抽象抽象数据类型算法算法设计要求 总结 前言 数据结构是软件编程的基础,是程序员的基本功。 简介 数据结构是一…

Ubuntu20配置Mysql常用操作

文章目录 版权声明ubuntu更换软件源Ubuntu设置静态ipUbuntu防火墙ubuntu安装ssh服务Ubuntu安装vmtoolsUbuntu安装mysql5.7Ubuntu安装mysql8.0Ubuntu卸载mysql 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程…

12、建立健全人员培训体系

9、大小屏分离与精细化审核 10、质量审核的设立与合并 11、视频分类建议 内容仓为公司其他部门输送了许多人才,既包括有潜力的主管,也有表现突出或者具备某些特殊能力的员工,从内容仓走出的同事,有些已经成为公司重要业务某个方…

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测 目录 回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测预测效果基本介绍模型描述程序设计预测效果 <

lv7 嵌入式开发-网络编程开发 11 TCP管理与UDP协议

目录 1 TCP管理 1.1 三次握手 1.2 四次挥手 1.3 保活计时器 2 wireshark安装及实验 3.1 icmp协议抓包演示 3.2 tcp协议抓包演示 3 UDP协议 3.1 UDP 的主要特点&#xff1a; 4 练习 1 TCP管理 1.1 三次握手 TCP 建立连接的过程叫做握手。 采用三报文握手&#xff1…

Fiddler抓取手机https包的步骤

做接口测试时&#xff0c;有时我们需要使用fiddler进行抓包分析&#xff0c;那么如何抓取https包。主要分为以下七步&#xff1a; 1.设置fiddler选项&#xff1a;Tools->Options,按如下图勾选 2.下载并安装Fiddler证书生成器 下载地址&#xff1a;http://www.telerik.com/…

C/C++——内存管理

1.为什么存在动态内存分配 灵活性 静态内存分配是在编译时确定的&#xff0c;程序执行过程中无法改变所分配的内存大小&#xff1b;动态内存分配可以根本程序的运行环境来动态分配和释放空间&#xff0c;提供了更大的灵活性 动态数据结构 有些数据结构的大小和结构在编译时…

运动控制:分辨率、定位精度、重复定位精度

分辨率&#xff0c;定位精度&#xff0c;重复定位精度三者之间有什么关系&#xff1f; 对于这个问题&#xff0c;我相信&#xff0c;很多刚开始做设计的伙伴们&#xff0c;都有这样的疑问。 今天&#xff0c;不墨迹&#xff0c;直接讲问题。 先说分辨率&#xff0c;这个最容…

[计算机入门] Windows附件程序介绍(工具类)

3.14 Windows附件程序介绍(工具类) 3.14.1 计算器 Windows系统中的计算器是一个内置的应用程序&#xff0c;提供了基本的数学计算功能。它被设计为一个方便、易于使用的工具&#xff0c;可以满足用户日常生活和工作中的基本计算需求。 以下是计算器程序的主要功能&#xff1a…

【算法基础】基础算法(二)--(高精度、前缀和与差分)

一、高精度 当一个数很大&#xff0c;大到 int 无法存下时&#xff0c;我们可以考虑用数组来进行存储&#xff0c;即数组中一个位置存放一位数。 但是对于数组而言&#xff0c;一个数顺序存入数组后&#xff0c;对其相加减是很简单的。但是当需要进位时&#xff0c;还是很麻烦的…

华为云云耀云服务器L实例评测|部署个人音乐流媒体服务器 navidrome

华为云云耀云服务器L实例评测&#xff5c;部署个人音乐流媒体服务器 navidrome 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 产品规格1.3 产品优势1.4 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 navidrome3.1 navidrome 介绍3.…

Spring Boot对账号密码进行加密储存

未来避免明文硬编码&#xff0c;我们需要对密码进行加密保存&#xff0c;例如账号密码 方法 在Spring Boot中&#xff0c;可以使用Jasypt&#xff08;Java Simplified Encryption&#xff09;库来对敏感信息进行加密和解密。Jasypt提供了一种简单的方式来在应用程序中使用加密…

Linux命令(95)之alias

linux命令之alias 1.alias介绍 linux命令alias是用来将/bin目录下的命令进行别名设置&#xff0c;将一些较长的命令进行简化。 alias命令的作用只局限于该次登入的操作&#xff0c;相当于临时变量。 如果对当前用户永久生效&#xff0c;需修改~/.bashrc文件&#xff0c;使用…

【动手学深度学习-Pytorch版】Transformer代码总结

本文是纯纯的撸代码讲解&#xff0c;没有任何Transformer的基础内容~ 是从0榨干Transformer代码系列&#xff0c;借用的是李沐老师上课时讲解的代码。 本文是根据每个模块的实现过程来进行讲解的。如果您想获取关于Transformer具体的实现细节&#xff08;不含代码&#xff09;可…