我正在尝试使用PyExifTool 0.5.4使用exiftool重命名python脚本中的jpg文件。我可以更改标记,例如DateTimeOriginal,但当我尝试使用标记重命名文件时,我无法获得文件名的正确格式。
with exiftool.ExifToolHelper() as et:
et.execute('-d %Y-%m.%%e', '-filename<DateTimeOriginal', os.path.join(subdir, file))
当从python调用时,此代码似乎忽略了-d
给定的格式,并简单地将文件重命名为DateTimeOriginal标记的内容,例如2021:12:25 16:26:37
。当我在没有'-d %Y-%m.%%e'
的终端中运行它时,会产生相同的结果
从终端运行命令,例如exiftool -d %Y%m.%%e '-filename<DateTimeOriginal' b.jpg
,按预期使用YYYYmm重命名文件。
dropf,您对execute()
的调用不正确。参数'-d %Y-%m.%%e'
需要是与ExifToolHelper.execute()
不同的两个参数
with exiftool.ExifToolHelper() as et:
et.execute('-d', '%Y-%m.%%e', '-filename<DateTimeOriginal', os.path.join(subdir, file))
这就是execute()
的工作方式。如果在exiftool
的命令行中有一个未加引号的空格,则需要将其作为另一个参数传递。
仅供参考:如果你有其他问题,你也可以在PyExifTool GitHub页面上发布问题