Python subprocess.Call()带有分隔参数,如“-charset FileName=latin”
使用Windows 10,我想使用subprocess.call从python向exiftool.exe发送以下标志: -字符集文件名=拉丁语 以下命令行条目工作正常:Python subprocess.Call()带有分隔参数,如“-charset FileName=latin”,python,windows,cmd,subprocess,exiftool,Python,Windows,Cmd,Subprocess,Exiftool,使用Windows 10,我想使用subprocess.call从python向exiftool.exe发送以下标志: -字符集文件名=拉丁语 以下命令行条目工作正常: exiftool -charset FileName=latin -overwrite_original -createdate="1960:05:01 12:00:00" "Tif format EXIF sample\Førskole IMG031.tif" 通过python设置调
exiftool -charset FileName=latin -overwrite_original -createdate="1960:05:01 12:00:00"
"Tif format EXIF sample\Førskole IMG031.tif"
通过python设置调用也很有效。它会发出警告,但仍会运行:
subprocess.call(
['exiftool',
f'-P',
f'-overwrite_original_in_place',
f'-CreateDate={new_date}',
file_or_folder_path])
Gives Warning:
C:\source\image-file-date-bulk-edit\Tif format EXIF sample\Førskole IMG031.tif
FileName encoding not specified. Use "-charset FileName=CHARSET"
Warning: FileName encoding not specified - C:\source\image-file-date-bulk-edit\
Tif format EXIF sample\Førskole IMG031.tif
但是,当我将-charset FileName=charset添加到subprocess.call时,进程似乎忽略了它:
subprocess.call(
['exiftool',
f'-charset FileName=latin',
f'-P',
f'-overwrite_original_in_place',
f'-CreateDate={new_date}',
file_or_folder_path])
Charset flag is ignored and warning persists:
C:\source\image-file-date-bulk-edit\Tif format EXIF sample\Førskole IMG031.tif
Warning: Tag 'charset' is not defined
FileName encoding not specified. Use "-charset FileName=CHARSET"
Warning: FileName encoding not specified - C:\source\image-file-date-bulk-edit\Tif format EXIF sample\Førskole IMG031.tif
为什么在后一种情况下f'-charset FileName=latin'被忽略?试试:
subprocess.call(
['exiftool',
'-charset', 'FileName=latin',
f'-P',
f'-overwrite_original_in_place',
f'-CreateDate={new_date}',
file_or_folder_path])
-当作为列表传递时,charset和FileName=latin应该是两个不同的参数。尝试:
subprocess.call(
['exiftool',
'-charset', 'FileName=latin',
f'-P',
f'-overwrite_original_in_place',
f'-CreateDate={new_date}',
file_or_folder_path])
-当作为列表传递时,charset和FileName=latin应该是两个不同的参数