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 № 1Nie 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.