摄影师选图脚本(根据快照文件的存在与否整理原文件)

引言

注意:后来我发现了一个PC端的选图神器“FastStone Image Viewer”,用它查看Raw原图时,它显示的是文件里内嵌的JPG快照所以加载速度很快,这两年除了让朋友远程选图我已经很少再用这个脚本。

不过它还是能用于一些新旧不同后缀名文件对比整理的场合,比如某项目的图标资源包要逐步从JPG换成PNG,每次增加几个新的图片换个路径放进资源包后,可以用这个脚本把旧图片自动找出来删掉。就是里面表征前后两种文件名后缀的常量字符串需要替换一下。

来自图片处理的需求:

喜欢摄影的都懂,修图之前的选图也很麻烦,尤其是当原图体积太大时,挑图片时电脑反应会比较迟钝,而且远程选图时传RAW原图让别人选即麻烦又不用户友好,所以选片时有时需要用缩图后的jpg文件(快照)。

但基于选好的快照去找原图又很麻烦,要一张一张找,一不小心就盯错行。

解决方案:

所以花了好半天功夫写了这个脚本:

  • 把挑好的快照文件放进文件夹,运行脚本之后,所有没有对应快照的源文件会被放进一个叫“files to delete”的子文件夹,有快照的源文件仍留在原地。这样后续的文件管理就比较好办了。

脚本使用方法:

1.安装python 3

  1. 官网下载python3.0系列(https://www.python.org)
    python官方下载页面

  2. 下载3.0以上的任意版本的“Windows x86 web-based installer”并进行安装
    下载页面

2.新建一个TXT文件,拷入下面代码后保存,并将后缀名改为".py"

代码:

#!/usr/bin/ env python 
#coding=UTF-8

import os, shutil
import sys

#***************  脚本说明: ***************
#脚本作用是以文件名和后缀类型为判断依据,把没有快照文件的文件移动到待删除目录,不会直接删文件
#不支持文件名相同但内容不同的情况
#对脚本所在文件夹内的所有嵌套子目录生效

#***************  使用方法: *************** by:BryanGG
# 环境要求:Windows + 已经安装3.0及以上版本的python
# 1.把本脚本放在待整理文件的同级或父文件夹内
# 2.根据需要修改脚本内的文件名后缀常量(注意是大小写敏感的):
#   fileToKeep = ".jpg" #快照文件后缀
#   fileToDel = ".CR2"   #源文件文件后缀
# 3.用格式转换软件把源文件转换成快照,保证其文件名相同后缀不同,放进脚本所在文件夹内
# 4.删除不需要的快照
# 5.用python集成进鼠标右键的“Edit with IDLE”打开脚本,按F5运行

delNum = 0
keepNum = 0


#函数shouldDel:若待某删类型的文件在字典里找不到对应快照,则返回True
def shouldDel(fileName, dictName, echoOn,<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: BAT脚本是一种批处理脚本语言,用于自动化执行Windows操作系统上的任务。要实现复制新文件并覆盖原文件的功能,可以使用以下步骤编写BAT脚本: 1. 首先,要复制的原文件和要覆盖的新文件必须位于同一个文件夹中。确保这些文件位于同一个目录下。 2. 打开一个文本编辑器,并创建一个新的文本文件。 3. 在文本文件中输入以下内容: ``` @echo off set "original_file=path\to\original_file.txt" set "new_file=path\to\new_file.txt" copy /y "%new_file%" "%original_file%" ``` 在上面的脚本中, `original_file` 和 `new_file` 变量分别指定原文件和新文件的路径。在 `copy` 命令中,`/y` 参数用于自动覆盖原文件。 4. 将文件保存为 `copy_and_replace.bat` 或任何其他你喜欢的名称,但确保扩展名为 `.bat`。 5. 双击运行 `copy_and_replace.bat` 脚本文件即可复制新文件并覆盖原文件。 请注意,这只是一个简单的示例脚本,并且仅适用于复制和覆盖单个文件。如果你想复制和覆盖多个文件,你需要进一步修改脚本。另外,确保在使用BAT脚本时小心使用,以防止意外覆盖重要文件。 ### 回答2: 使用BAT脚本复制文件并覆盖原文件,可以通过以下步骤实现: 1. 首先,需要使用`xcopy`命令来复制文件,并且使用`/Y`参数强制覆盖原文件。 2. 在BAT脚本中,使用以下命令来复制文件并覆盖原文件: ```bat xcopy 源文件路径 目标文件路径 /Y ``` 其中,`源文件路径`是待复制文件的路径和文件名,`目标文件路径`是复制后文件存放的路径和文件名。使用`/Y`参数可以覆盖目标文件。 3. 举个例子,如果要将名为`oldfile.txt`的文件复制到名为`newfile.txt`的位置并覆盖原文件,可以使用以下命令: ```bat xcopy "C:\路径\oldfile.txt" "C:\路径\newfile.txt" /Y ``` 上述命令将复制`oldfile.txt`到`newfile.txt`的位置,并且原文件将被覆盖。 通过以上步骤,可以编写一个BAT脚本来实现复制新文件并覆盖原文件的功能。 ### 回答3: 要在bat脚本中实现复制新文件并覆盖原文件,可以使用以下命令: ``` @echo off copy /Y "原文件路径" "目标文件路径" ``` 1. `@echo off`命令可以关闭在执行命令时显示命令本身的输出信息。 2. `copy`命令用于复制文件,`/Y`参数表示不询问确认,直接覆盖目标文件。 3. `"原文件路径"`是要复制的原文件的路径,可以是相对路径或绝对路径。 4. `"目标文件路径"`是要复制到的目标文件的路径,也可以是相对路径或绝对路径。 例如,如果想将D盘中的"example.txt"文件复制到E盘并覆盖原有的"example.txt"文件,可以使用以下命令: ``` @echo off copy /Y "D:\example.txt" "E:\example.txt" ``` 注意:使用此脚本时,请确保目标文件存在,否则会创建一个全新的文件。此外,使用复制并覆盖文件时要小心,以免意外删除或覆盖重要的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值