我在bash中使用以下命令来执行Python脚本.
python myfile.py -c "'USA'" -g "'CA'" -0 "'2011-10-13'" -1 "'2011-10-27'"
Run Code Online (Sandbox Code Playgroud)
我正在编写一个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']
Run Code Online (Sandbox Code Playgroud)
即使使用带引号的参数,您也应该能够使用subprocess.Popen启动脚本:
subprocess.Popen([
"/usr/bin/python",
"myfile.py",
"-c",
"'USA'",
"-g",
"'CA'",
"-0",
"'2011-10-13'",
"-1",
"'2011-10-27'",
])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14268 次 |
最近记录: |