Вызов ExifTool из python скрипта зависает в Ma c, но работает в Windows - PullRequest
0 голосов
/ 24 апреля 2020

Я использую скрипт из этого ответа . Я сделал одну незначительную модификацию, которая указана ниже.

Модификация 1

sentinel = "{ready}\n"

    def __init__(self, executable="/usr/local/bin/"):
        self.executable = executable

    def __enter__(self):
        app = "exiftool"
        command_line = [app, "stay_open", "True", "-@", "-"]
        self.process = subprocess.Popen(command_line, executable=app, universal_newlines=True,
                                        stdin=subprocess.PIPE, stdout=subprocess.PIPE)
        return self

Остальная часть ответа, размещенная в исходной ссылке, полностью не изменилась.

Я называю вышеизложенное следующим образом:

def main():
    filename = r"/Volumes/backup/2017/MOV_0004.mp4"
    with ExifTool.ExifTool() as e:
        metadata = e.get_metadata(*filename)
    json_str = json.dumps(metadata, indent=2)
    print (json_str)

По какой-то странной причине это прекрасно работает на Windows, но я просто не могу заставить его работать на Ма c.

Чтобы заставить это работать на Windows Я меняю одну строку sentinel = "{ready}\n". Я использую python 3.7.1 для Ма c и python 3.6.1 для Windows.

Буду признателен за любой совет.

...