当前位置: 首页 > news >正文

索尼相机照片清理软件

在使用索尼相机拍摄照片的时候有时我们需要同时拍摄JPG格式和RAW格式,这在后期选图的时候给我们带来一些麻烦。我们固然可以选用Br来管理照片,但是现在我们可以有一个更轻量的软件(8.8MB)来做到一部分功能。
我们将照片从SD卡导出到电脑,会发现很多同名的.arw和.jpg文件。但是,Windows自带的照片app打不开索尼的.arw格式的文件,只能打开.jpg格式的文件。于是,我们就可以想到,能不能直接看jpg照片,不满意的删除,然后根据剩下的jpg图片去筛选raw文件?
下面使用python实现这一功能:

import Tkinter as teak
from tkinter import filedialog
from tkinter import messagebox
import os
import glob
import sysdef cleanup_folder(folder_path):# 获取文件夹中所有的.jpg和.raw文件jpg_files = glob.glob(os.path.join(folder_path, '*.jpg'))raw_files = glob.glob(os.path.join(folder_path, '*.arw'))# 初始化jpg和raw文件的计数器initial_jpg_count = len(jpg_files)initial_raw_count = len(raw_files)# 创建两个空列表,分别存储所有.jpg和.raw文件的名称(不包括扩展名)jpg_names = [os.path.splitext(os.path.basename(f))[0] for f in jpg_files]raw_names = [os.path.splitext(os.path.basename(f))[0] for f in raw_files]# 删除没有对应.jpg文件的.raw文件for raw_file, raw_name in zip(raw_files, raw_names):if raw_name not in jpg_names:os.remove(raw_file)print(f'Deleted {raw_file} because it has no corresponding .jpg file.')# 删除没有对应.raw文件的.jpg文件for jpg_file, jpg_name in zip(jpg_files, jpg_names):if jpg_name not in raw_names:os.remove(jpg_file)print(f'Deleted {jpg_file} because it has no corresponding .arw file.')# 重新计算并打印处理后的.jpg和.raw文件的数量final_jpg_files = glob.glob(os.path.join(folder_path, '*.jpg'))final_raw_files = glob.glob(os.path.join(folder_path, '*.arw'))print(f'Initial .jpg file count: {initial_jpg_count}')print(f'Initial .arw file count: {initial_raw_count}')print(f'Final .jpg file count: {len(final_jpg_files)}')print(f'Final .arw file count: {len(final_raw_files)}')print('Cleanup complete. Files are now consistent.')def select_folder_and_cleanup():root = tk.Tk()root.withdraw()  # 不显示主窗口folder_path = filedialog.askdirectory()  # 弹出对话框让用户选择文件夹if folder_path:  # 如果用户选择了文件夹cleanup_folder(folder_path)tk.messagebox.showinfo("完成", "文件夹清理完成!")else:tk.messagebox.showinfo("取消", "操作已取消")if __name__ == "__main__":select_folder_and_cleanup()

在terminnal里使用如下命令可以将其打包成.exe文件(还可以根据自己的想法添加图标)

 pyinstaller --onefile --icon=A7C2.ico cleanup.py

如果想直接使用该exe文件可以到这里下载:
https://download.csdn.net/download/BerryNard/89095588

相关文章:

索尼相机照片清理软件

在使用索尼相机拍摄照片的时候有时我们需要同时拍摄JPG格式和RAW格式,这在后期选图的时候给我们带来一些麻烦。我们固然可以选用Br来管理照片,但是现在我们可以有一个更轻量的软件(8.8MB)来做到一部分功能。 我们将照片从SD卡导出…...

比赛记录:Codeforces Global Round 25 A~E (猜猜题场)

传送门:CF [前题提要]:其实这场打的不是很好.A题一个sb错误看不出来,50min后才过,B题上来就Wa了一发,C题用了没必要的线段树,D题刚开始被60诈骗,一直在想按位考虑.幸好赛时猜出了E,然后又猜出来D,本来掉大分变成上大分…但是这场前几题大都是猜猜题,所以本来不想写题解的.但是…...

Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-AwzyR2lkHKjD9HYl {font-family:"trebuchet ms",verdana,arial,sans-serif;f…...

Svg Flow Editor 原生svg流程图编辑器(五)

系列文章 Svg Flow Editor 原生svg流程图编辑器(一) Svg Flow Editor 原生svg流程图编辑器(二) Svg Flow Editor 原生svg流程图编辑器(三) Svg Flow Editor 原生svg流程图编辑器(四&#xf…...

数字晶体管选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2,工作原理2.1,AND 门(与门),2.2,OR 门(或门):2.3,NOT 门(非门):2.4,NAND 门(与非门):2.5,NOR 门(或非门):3,结构特点3.1,TTL(Transistor-Transistor Logic)晶体管...

lua学习笔记9(字典的学习)

print("********************字典的学习***********************") a{["凌少"]"傻逼",["我"]"天才",["age"]24,["daihao"]114514,["8848"]20000} --访问单个变量 print(a["凌少"])…...

第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》

​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇 广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇 广告效果测量定义和其他矩阵之- 3.2 可见性 (Viewability…...

mysql学习笔记NO.2

Java操作数据库、表笔记 1.创建数据库 创建数据库的步骤如下: 导入所需的Java数据库连接驱动(如MySQL驱动)。使用JDBC连接到数据库。执行SQL语句创建数据库。 import java.sql.Connection; import java.sql.DriverManager; import java.…...

C++11:lambda表达式 包装器

C11:lambda表达式 & 包装器 lambda表达式包装器functionbind lambda表达式 在C98中,如果想对一个结构体数组使用sort排序,那么我们就需要自己些仿函数。 比如以下结构体: struct Goods {string _name; // 名字double _pric…...

Node.js HTTP/2 CONTINUATION 拒绝服务漏洞(CVE-2024-27983)

Node.js 是开源、跨平台的 JavaScript 运行时环境。CONTINUATION泛洪攻击被发现存在于多个HTTP/2协议实现中。 在受影响版本中,由于Node.js针对HTTP/2协议的实现不当,未正确处理多个CONTINUATION帧的情况,在node::http2::Http2Session::~Htt…...

YOLOV8 + 双目测距

YOLOV8 双目测距 1. 环境配置2. 测距流程和原理2.1 测距流程2.2 测距原理 3. 代码部分解析3.1 相机参数stereoconfig.py3.2 测距部分3.3 主代码yolov8-stereo.py 4. 实验结果4.1 测距4.2 测距跟踪4.3 测距跟踪分割4.4 视频展示 相关文章 1. YOLOv5双目测距(python&…...

前端:SVG绘制流程图

效果 代码 html代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>SVG流程图示例</title><style>/* CSS 样式 */</style><script src"js/index.js"></script…...

【Linux系列】如何确定当前运行的是 RHEL 9 还是 RHEL 8?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

vscode开发java的插件和配置

推荐插件 .vscode/extensions.json {"recommendations": ["redhat.fabric8-analytics","ms-azuretools.vscode-docker","vscjava.vscode-java-pack","eamodio.gitlens","obkoro1.korofileheader","redhat.j…...

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

Mysql启动报错&#xff1a;本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 文章目录 Mysql启动报错&#xff1a;本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止1. 备份mysql的data文件夹2. 重新构建 Wind…...

WPF程序添加托盘图标

程序添加托盘图标 UI层 //添加handycontrol的引用xmlns:hc"https://handyorg.github.io/handycontrol"//添加NotifyIcon图标 实现单击 双击 二级菜单点击功能<hc:NotifyIconText"通知"Token"Info"><hc:NotifyIcon.ContextMenu><…...

工业4g路由器联网后迅速掉线是什么原因?

工业4G路由器连接上网后迅速掉线可能是由多种因素造成的。以下是一些建议的检查和解决步骤&#xff1a; 1、信号问题&#xff1a; 信号强度&#xff1a;检查工业路由器信号强度指示灯&#xff0c;如果信号弱&#xff0c;尝试移动路由器位置或添加外部天线来增强信号。 网络拥…...

腾讯云4核8G服务器12M带宽646元1年零3个月,4C8G使用场景说明

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…...

java - 读取配置文件

文章目录 1. properties2. XML(1) dom4j(2) XPath 1. properties // 创建properties对象用于读取properties文件Properties properties new Properties();properties.load(new FileReader("src/main/resources/test.properties"));String name properties.getPrope…...

Ubuntu22.04平台编译完美解决问题“error: GLSL 4.5 is not supported.”【GLSL(OpenGL着色器语言)】

GLSL介绍 GLSL&#xff08;OpenGL着色器语言&#xff09;是用于编写OpenGL着色器程序的语言。GLSL 4.5 是 GLSL 的一个版本&#xff0c;引入了许多新的特性和改进&#xff0c;旨在提高着色器编程的灵活性和性能。GLSL 4.5 工具通常是用于编写、调试和优化 GLSL 4.5 着色器代码…...

【嵌入式Linux】Libmodbus RTU从源码到实战:基于i.MX6UL的工业通信移植指南

1. 为什么选择Libmodbus RTU在i.MX6UL上做工业通信&#xff1f; 在工业自动化领域&#xff0c;Modbus协议就像设备之间的"普通话"&#xff0c;而RTU模式则是其中最省流量、最抗干扰的方言。我去年给一家工厂做设备改造时&#xff0c;发现他们的老式PLC和传感器清一色…...

MyBatis 中 CDATA 的实战应用与避坑指南

1. 为什么MyBatis需要CDATA 在MyBatis的日常开发中&#xff0c;我们经常需要在XML映射文件中编写SQL语句。但XML本身对特殊字符有着严格的限制&#xff0c;比如小于号(<)、大于号(>)、和号(&)等字符在XML中都有特殊含义。这就导致了一个很现实的问题&#xff1a;当我…...

FastAPI流式AI接口设计陷阱大全(2024高频真题+源码级调试实录)

第一章&#xff1a;FastAPI流式AI接口设计陷阱大全&#xff08;2024高频真题源码级调试实录&#xff09;流式响应被中间件静默截断 FastAPI 默认启用的 Starlette 中间件&#xff08;如 HTTPSRedirectMiddleware 或自定义日志中间件&#xff09;可能在未显式处理 StreamingResp…...

【FastAPI 2.0流式AI响应核心机密】:3大异步协程调度陷阱、2处EventSource底层劫持点、1个未公开的StreamingResponse状态机设计缺陷

第一章&#xff1a;FastAPI 2.0流式AI响应的架构演进与设计哲学FastAPI 2.0 将流式响应能力从实验性支持提升为核心原语&#xff0c;其底层重构了 Starlette 的响应生命周期与事件循环集成机制&#xff0c;使 Server-Sent Events&#xff08;SSE&#xff09;、text/event-strea…...

const 变量的存储位置

const 变量的存储位置&#xff1a;不是绝对的只读区&#xff01;这是 C/C 面试/学习高频易错点&#xff0c;核心结论&#xff1a;const 只修饰「只读权限」&#xff0c;不直接决定存储位置&#xff0c;变量放哪里&#xff0c;由变量的「作用域/生命周期」决定。一、分情况讲清楚…...

海外项目实战:用uniapp+Google OAuth 2.0搞定H5/App的免后端登录(附完整源码)

海外项目实战&#xff1a;Uniapp与Google OAuth 2.0的无后端登录方案 在面向海外市场的移动应用开发中&#xff0c;用户登录体验直接影响产品的转化率和留存率。Google账号作为欧美地区最普及的数字身份凭证&#xff0c;其登录集成已成为出海应用的标配功能。本文将深入探讨如何…...

石家庄整家定制口碑供应商

在石家庄&#xff0c;寻找一家值得信赖的整家定制服务商&#xff0c;是许多家庭在装修时的重要考量。一个优秀的定制品牌&#xff0c;不仅能为居者提供个性化的空间解决方案&#xff0c;更能将美学、功能与品质融为一体&#xff0c;让日常居住成为一种享受。关于我们位于石家庄…...

LeagueAkari终极指南:智能游戏辅助工具快速上手与深度配置

LeagueAkari终极指南&#xff1a;智能游戏辅助工具快速上手与深度配置 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在…...

嵌入式OLED UI组件库:轻量级C++组件化设计

1. 项目概述 OLED UI Components 是一个面向嵌入式平台的轻量级、组件化 OLED 用户界面开发库&#xff0c;专为基于 SSD1306 驱动芯片的单色 OLED 显示屏&#xff08;典型分辨率为 12864&#xff09;设计。该库不直接操作硬件寄存器&#xff0c;而是构建在 Adafruit_SSD1306 库…...

避坑指南:用ESP32驱动LD2420毫米波雷达时,串口数据丢失和自动开机卡死的那些事儿

ESP32与LD2420毫米波雷达深度避坑实战&#xff1a;从数据丢失到系统卡死的全链路解决方案 当你在凌晨三点盯着逻辑分析仪上那些残缺的串口波形时&#xff0c;就会明白为什么LD2420毫米波雷达被称为"最熟悉的陌生人"。这个能穿透墙壁感知呼吸的24GHz传感器&#xff0c…...