/ / Jak obsługiwać ":" w poleceniu za pomocą os.popen - python, pipe, popen

Jak obsługiwać ":" w poleceniu za pomocą os.popen - python, pipe, popen

Próbuję wywołać program z:

os.popen("program -s:"*" -c:"A;B;C;"")

Wydaje się jednak, że został zinterpretowany jako polecenie powłoki:

program -s "*" -c "A;B;C;"

które powodują nieprawidłowe zachowanie.

Czy ktoś może mi pomóc, jak prowadzić takie situdacje, gdzie ":" jest w linii poleceń?

Odpowiedzi:

1 dla odpowiedzi № 1

Nie używaj os.popen(), Użyj subprocess moduł zamiast:

import subprocess

result = subprocess.check_output(["program", "-s:"*"", "-c:"A;B;C;""])

Zwraca dane wyjściowe programu bez uruchamiania go przez powłokę, przekazując argumenty bezpośrednio, bez żadnego dodatkowego analizowania.