我在 bash 中使用以下命令来执行 Python 脚本。
python myfile.py -c "'USA'" -g "'CA'" -0 "'2011-10-13'" -1 "'2011-10-27'"
我正在编写一个 Python 脚本来包装这个脚本。我目前不得不使用 os.system(我知道,它很糟糕),因为我不知道如何让引号与 subprocess.Popen 一起使用。传入的字符串变量中必须维护内部单引号。
谁能帮我确定如何格式化传递给 subprocess.Popen 的第一个变量。
最佳答案
您不需要对这些值进行转义。一切都作为字符串传递给流程。
您可以使用 shlex 模块找出传递变量的最佳方式:
import shlex
shlex.split('python myfile.py -c "USA" -g "CA" -0 "2011-10-13" -1 "2011-10-27"')
['python',
'myfile.py',
'-c',
'USA',
'-g',
'CA',
'-0',
'2011-10-13',
'-1',
'2011-10-27']
关于带有多个引号的参数的 Python 子进程调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581140/