根据exif标记重命名图像文件
pyimgren的Python项目详细描述
平格伦
一个Python模块,根据它们的标记来重命名图像。当前状态
此软件包自0.1.0版起在pypi中分发。它可以被最终用户使用,但应该考虑beta质量,因为它仍然缺乏广泛的测试。其完整源代码可从GitHUB获得。
目标
数码相机按顺序命名图片。当您要将来自多个相机的图片放在同一文件夹中时,它们将按相机而不是按图片日期和时间进行排序。
即使我们可以找到一些允许对这些图片进行批量重命名的程序,我也找不到可移植的python模块。所以这个项目的目标是:
- 几乎没有依赖关系:python 3(测试为>;=3.3)
- 很少有额外的模块需求:安装时只需要piexif和i18nparse
- 可移植性:这是一个纯python包,在travis ci(linux)和appveyor(windows)上测试了3.3到3.6版本(仅适用于appveyor的3.7版本)。
本地化
该包支持gettext类型本地化,并提供法语翻译。
用法:
作为python模块
PyimGrand包包含一个单独的类^ {< CD1>},使用两个公共方法:^ {CD2>}根据它们的ExIF日期重命名图片文件,和^ {CD3>},将它们重命名为它们的原始名称。
重命名器用于重命名相机提供的图像名称 (通常是imgxxxxx.jpg或dscfyyyy.jpg,根据时间转换成一个名称) 拍摄照片的时间(就像智能手机一样)。那时候是 从图片的EXIF标签中提取。如果 图片不包含EXIF时间。(可选)要添加到的分钟数 EXIF时间可以用来处理来自摄像机的图像。 有一个错误的时间..
将在文件夹中创建名为names.log的文件以存储新名称 还有原来的,为了能重新命名。
使用以下命令创建重命名程序:
renamer = Renamer(folder, src_mask = "DSCF*.jpg",
dst_mask = "%Y%m%d_%H%M%S",
ext_mask = ".jpg",
ref_file = "names.log",
delta = 0.0,
debug = False,
dummy = False)
参数:
- 文件夹:将重命名图片的默认文件夹
- src_mask:选择要重命名的文件的模式(默认 “dscf*.jpg”)
- dst_mask:包含strftime格式指令的格式 将用于图片的新名称(默认 %y%m%d\u%h%m%s“
- ext_mask:新名称的扩展名(默认为“.jpg”)
- ref_file:将记住旧名称的文件的名称 (默认“names.log”) 增量:一个(浮点)分钟数添加到子文件夹中 标记时间(默认为0.0)
- 调试:一个布尔标志,它将导致为 每次重命名为true(默认为false)
- dummy:一个布尔标志,它将导致“dry run”,意思是 将扫描该文件夹,并最终打印调试信息 但不会重命名任何文件(默认为false)
典型用途:
from pyimgren import Renamer
...
conv = Renamer(path)
conv.rename() # to convert to "date" names
...
conv.back() # if you want to revert to original names
作为脚本
pip安装在scripts目录中安装一个pyimgren
脚本(在windows上是pyimgren.exe
)。然后可以直接使用它(只要脚本目录在路径中),语法如下:
usage: pyimgren [-h] [-v] [--folder FOLDER] [-s SRC_MASK] [-d DST_MASK]
[-e EXT_MASK] [-r REF_FILE] [-x delta] [-D] [-X]
{rename,back,merge} ...
Rename pictures according to their exif timestamp
positional arguments:
{rename,back,merge} sub-commands
rename rename files by using their exif timestamp
back rename files back to their original name
merge merge files from a different folder
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--folder FOLDER, -f FOLDER
folder containing files to rename
-s SRC_MASK, --src_mask SRC_MASK
pattern to select the files to rename
-d DST_MASK, --dst_mask DST_MASK
format for the new file name
-e EXT_MASK, --ext EXT_MASK
extension for the new file name
-r REF_FILE, --ref_file REF_FILE
a file to remember the old names
-x delta, --delta delta
minutes to add to the exif tag time
-D, --debug print a line per rename
-X, --dry_run process normally except no rename occurs
子命令具有以下语法:
usage: pyimgren [global_options ...] {back|rename} [-h] [files [files ...]]
positional arguments:
files files to process (default: content of ref_file)
optional arguments:
-h, --help show this help message and exit
以及
usage: pyimgren [global_options ...] merge [-h] folder [files [files ...]]
positional arguments:
folder folder from where merge picture files
files files to process (default: src_mask)
optional arguments:
-h, --help show this help message and exit
usage: pyimgren [-h] [-v] [-b] [-s SRC_MASK] [-d DST_MASK] [-e EXT_MASK]
[-r REF_FILE] [-x delta] [-D] [-X]
folder [files [files ...]]
Rename pictures according to their exif timestamp
positional arguments:
folder folder containing files to rename
files files of sub folders to process (optional)
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-b, --back restore original names
-s SRC_MASK, --src_mask SRC_MASK
pattern to select the files to rename
-d DST_MASK, --dst_mask DST_MASK
format for the new file name
-e EXT_MASK, --ext EXT_MASK
extension for the new file name
-r REF_FILE, --ref_file REF_FILE
a file to remember the old names
-x delta, --delta delta
minutes to add to the exif tag time
-D, --debug print a line per rename
-X, --dry_run process normally except no rename occurs
作为模块
它可以用作python模块,即使脚本目录不在路径中,也可以在windows中使用它,这要归功于py
启动程序,它的语法与脚本相同:
usage: pyimgren [-h] [-v] [--folder FOLDER] [-s SRC_MASK] [-d DST_MASK]
[-e EXT_MASK] [-r REF_FILE] [-x delta] [-D] [-X]
{rename,back,merge} ...
或者在使用windows启动程序时py -m pyimgren ...
安装
最终用户安装
使用pip:pip install pyimgren
。
显影装置
如果您想在自己的代码中贡献或集成pyimgren,您应该从GitHUB:
git clone https://github.com/s-ball/pyimgren [your_working_copy_folder]
运行测试
由于该项目打算与pypi兼容,您只需从main运行测试文件夹:
python setup.py test
集成测试依赖于pyfakefs,当您运行python setup.py test
时,它会自动从pypi中插入。但它不需要运行pyimgren
,也不需要由pip install pyimgren
安装。
贡献
由于这个项目是在我的空闲时间开发的,我不能保证很快的反馈。无论如何,我很高兴在github上收到问题或请求。
版本控制
此项目使用标准的major.minor.patch版本控制模式。在主版本中,需要公共api的稳定性(至少在1.0.0版本发布之后)。
许可证
此项目在麻省理工学院许可下获得许可-有关详细信息,请参见license.txt文件