如何使用 os.popen 在命令中处理 ':'

How to handle ':' in command using os.popen

我正在尝试调用一个程序:

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

不过好像被解释成shell命令:

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

这会导致不正确的行为。

有人可以帮我解决在 shell 命令行中出现“:”的情况吗?

不要使用os.popen(),而是使用subprocess module

import subprocess

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

这个returns程序的输出没有运行它通过一个shell,直接传入参数,没有任何额外的解析。