Python 3.x 如何在python子流程中使用exiftool?

Python 3.x 如何在python子流程中使用exiftool?,python-3.x,subprocess,exiftool,Python 3.x,Subprocess,Exiftool,我想读取一个包含文件夹列表的文件,然后在每个文件夹中搜索图像,并应用exiftool命令检索csv文件中格式化的元数据 f = open("exifs.csv","w") f.write("id;name;E;N;Alt_gps;date;iso;speed;oberture\n") for line in file: print (line) if not line.startswith('#') : line2

我想读取一个包含文件夹列表的文件,然后在每个文件夹中搜索图像,并应用exiftool命令检索csv文件中格式化的元数据

    f = open("exifs.csv","w")
    f.write("id;name;E;N;Alt_gps;date;iso;speed;oberture\n")

    for line in file:
        print (line)
        if not line.startswith('#') :
            line2 = line.strip()
            for photo in os.listdir(line2):

                subprocess.call(shlex.split('exiftool -p $directory;$filename;$GPSLongitude#;$GPSLatitude#;$GPSAltitude#;$DateTimeOriginal;$iso;$ExposureTime;$Fnumber -f -c "%f" {x}'.format(x=photo)), stdout=f)

    f.close()

实际上,这只是列出文件夹中包含的所有图像,而无需对exiftool应用子进程调用。

我建议不要对每个文件循环调用exiftool,而是让exiftool直接用。使用
-@Filelist.txt
,exiftool将处理列表中的所有文件。您会发现这比单独为每个文件调用exiftool要快得多(请参见)好,因此我必须在将列表文件传递给exiftool之前生成列表文件。但是,我的subprocess.call不适用于循环中找到的每个文件这一事实又如何呢?很抱歉,我不能帮助您,因为我没有python方面的经验,只有exiftool。尽管如此,我还是感谢您的建议,因为我找到了另一种使用-@选项的方法,不是python而是exiftool。