python移动vivo手机截图可运行代码的报错,处理小插曲~


/data/user/0/org.qpython.qpy/files/bin/qpy thon3.sh "/storage/emulated/0/qpython/pyth on读取vivo手机截图,将满屏图片文件移动别的 路径1.1.3.2.py" && exit
文件移动别的路径1.1.3.2.py" && exit      < 请提供可爱的图片:/storage/emulated/0/Pict ures/Screenshots/Screenshot_20231005_15133 9.jpg
输入图片的尺寸:1080x2388,非常可爱优雅!
请输入一张可爱图片的源文件夹路径:
请输入一个要移动可爱尺寸图片的目标地址:
正在搜寻“可爱尺寸”的图片: 0张 [00:00, ?张/ s]哎呀,发生了一个小错误:cannot identify  image file '/storage/emulated/0/Pictures/S creenshots/.escheck.tmp'
哎呀,发生了一个小错误:cannot identify im age file '/storage/emulated/0/Pictures/Scr eenshots/Screenrecording_20230820_091215.m p4'
哎呀,发生了一个小错误:cannot identify im age file '/storage/emulated/0/Pictures/Scr eenshots/Screenrecording_20230915_151034.m p4'
正在搜寻“可爱尺寸”的图片: 1张 [00:05,  5.0 正在搜寻“可爱尺寸”的图片: 2张 [00:05,  2.2 正在搜寻“可爱尺寸”的图片: 2张 [00:05,  2.6 5s/张]
已成功移动 3 张美丽的图片到目标文件夹!请欣赏它们的优雅姿态。

#[QPython] Press enter to exit ...

代码已成功运行并完成图片移动操作。

根据输出结果显示,已经成功移动了3张与输入图片尺寸相同的可爱图片到目标文件夹中。您可以在目标文件夹中欣赏它们的优雅姿态。如果有其他问题,可以点击评论按钮吐槽。


哎呀,发生了一个小错误:cannot identify im age file '/storage/emulated/0/Pictures/Scr eenshots/Screenrecording_20230820_091215.m p4'
哎呀,发生了一个小错误:cannot identify im age file '/storage/emulated/0/Pictures/Scr eenshots/Screenrecording_20230915_151034.m p4

这是因为,代码发生了无法识别文件格式的错误。这可能是因为代码尝试打开的文件不是有效的图片文件导致的。可以尝试手动删除这两个无效的文件,或者在代码中添加一些处理逻辑来跳过无效的文件。以下是更新的代码例子

代码中使用了os.walk遍历源文件夹及其子文件夹中的所有文件。对于每个文件,都会使用Image.open来打开并检查其尺寸是否与输入的图片尺寸相同。

如果要指定搜索特定类型的图片文件(例如.jpg.png),可以在遍历文件时添加一个判断条件。以下是更新后的代码示例:

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
invalid_files = []  # 存储无法识别的文件路径
for root, dirs, files in tqdm(os.walk(source_folder), desc='正在路径搜寻“可爱尺寸”的图片', unit="张"):
    for filename in files:
        filepath = os.path.join(root, filename)
        try:
            # 判断文件类型是否为图片(以.jpg、.jpeg、.png等结尾)
            if filepath.lower().endswith(('.jpg', '.jpeg', '.png')):
                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:
            invalid_files.append(filepath)
            print(f"发生了一个小错误:{str(e)}")
            pass

print(f"已成功移动 {moved_count} 张美丽的图片到目标文件夹!请欣赏它们的优雅姿态。")
print(f"无法识别的文件:{invalid_files}")  # 打印无法识别的文件路径列表

更新代码后,使用filepath.lower().endswith(('.jpg', '.jpeg', '.png'))来判断文件是否以.jpg.jpeg.png结尾,以此确定文件类型为图片。只有当文件类型为图片时,才会打开并检查其尺寸。

如果您希望搜索其他类型的图片文件,请依葫芦画瓢修改判断条件。

你可能感兴趣的:(python,青少年编程,自动化,智能手机,图像处理)