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

问题之初

在这里插入图片描述

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

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

这段代码

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

python">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.size
        print(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 += 1
        except Exception as e:
            print(f"哎呀,发生了一个小错误:{str(e)}")
            pass

print(f"已成功移动 {moved_count} 张美丽的图片到目标文件夹!请欣赏它们的优雅姿态。")

图片

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

直接回车

在这里插入图片描述


http://www.niftyadmin.cn/n/5069525.html

相关文章

vuejs中封装axios请求集中管理

vuejs中封装axios请求集中管理 前言 在vuejs中,使用axios请求数据,一般会封装一个请求方法,然后在每个页面中调用,这样就造成代码冗余,导致代码可读性差,维护困难。 在项目当中,单独使用axios或者在main.js…

【C++】STL详解(十一)—— unordered_set、unordered_map的介绍及使用

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C学习 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C】STL…

【python数据建模】Sympy库

概述 Sympy库是进行符号运算的库。 与Scipy库的数值运算不同,Sympy的运算是在推理基础上进行的,不用考虑误差问题。 例如,在Scipy库中, 7 \sqrt7 7 ​计算中使用的是近似值,但是Sympy中, 7 \sqrt7 7 ​是以…

不断优化的素数算法

前言:素数判断是算法中重要的一环,掌握优秀的素数判断方法是算法player的必修课。本文介绍的是由简到繁的素数算法,便于初学者从入门到精通。 素数(质数):只能被 1 和它本身整除的数称作素数,如…

用VLD调查VC内存泄漏

一、发现内存泄漏 使用VS2022&#xff0c;发现提示有内存泄漏&#xff0c;检查了所有的new&#xff0c;确认都有相应的delete释放。 Detected memory leaks! Dumping objects -> {1914} normal block at 0x0000021FDFFBD2E0, 48 bytes long.Data: < >…

安装Ubuntu提示:系统找不到指定的文件。

今天我删除Ubuntu后重新下载&#xff0c;发现报错&#xff0c;错误信息如下&#xff1a; 这是因为系统没有卸载干净而导致的。 解决办法&#xff1a; 第一步&#xff1a; ##查询当前已安装的系统 wsl.exe --list --all 执行结果&#xff1a; 第二步&#xff1a; ##注销当前…

C++深入学习part_1

Linux下编译C程序 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;$ g *.cc 或者 *.cpp -o fileName; hellworld 编译程序可以看到&#xff1a; namespace命名空间 首先&#xff0c;命名空间的提出是为了防止变量重名冲突而设置的。 浅浅试一下&#xff1…

冲刺十五届蓝桥杯P0002 日期统计

文章目录 题目分析代码 题目 分析 需要明白一些概念&#xff0c;子序列、连续子序列。 1.子序列&#xff08;subsequence&#xff09;是指原始序列中按照相同顺序选择零个或多个元素而形成的序列。连续子序列&#xff08;subarray&#xff09;是指原始序列中相邻位置的元素构…