Мне нужно отправить довольно длинную команду с помощью python docker SDK
ffmpeg -f lavfi -re -i smptebars=duration=60:size=1280x720:rate=30 -f lavfi -re -i sine=frequency=1000:duration=60:sample_rate=44100 -pix_fmt yuv420p -c:v libx264 -b:v 1000k -g 30 -keyint_min 120 -profile:v baseline -preset veryfast -f mpegts "srt://127.0.0.1:4200?pkt_size=1316"
У меня есть пример, в котором вам нужно заключить каждый элемент в двойные кавычки.
container1 = client.containers.run("alpine", ["echo", "hello", "world"],name='autotest', detach=True)
2 вопроса
Есть ли элегантный способ сделать это? Если нет, как мне обрабатывать биты, у которых уже есть кавычки?
Я считаю, что shlex.split () может сделать бизнес! Я закружу его
Здесь нет ничего специфичного для
ffmpeg
илиdocker
. Библиотечная функцияshlex.split()
может использоваться для преобразования строки с произвольным заключением в кавычки в список токенов, пригодных для передачи системному вызовуexec
или аналогичному API.