Python中的subprocess()参数
我在Python中有一个参数,它把我的subprocess()命令搞砸了。理由是:Python中的subprocess()参数,python,subprocess,command-line-arguments,Python,Subprocess,Command Line Arguments,我在Python中有一个参数,它把我的subprocess()命令搞砸了。理由是: --server-args="-screen 0, 1280x800x24" args = [ 'xvfb-run', '--server-args="-screen 0, 1280x800x24"', '/usr/bin/python', '/root/AdamN-python-webkit2png-3ae4322/webkit2png.py', '-o', filename,
--server-args="-screen 0, 1280x800x24"
args = [
'xvfb-run',
'--server-args="-screen 0, 1280x800x24"',
'/usr/bin/python',
'/root/AdamN-python-webkit2png-3ae4322/webkit2png.py',
'-o',
filename,
url,
]
我想这是在逃避双引号。这是Python代码,不是shell命令行
shell命令行吃引号来保留空格-在Python中,空格是通过不同的方式保留的,因此引号按原样传递,并成为被调用程序实际看到的参数的一部分。虽然您可能在过去两年中已经解决了这个问题,但今天我遇到了同样的问题。解决方案:
import subprocess
subprocess.check_call(['xvfb-run', '-s', '-screen 0 1024x768x24',
'CutyCapt',
'--url=http://www.google.com/',
'--out=google.png'])
或
假设您已经安装了xvfb。我使用的示例应用程序需要一个X帧缓冲区来运行(它是一个将webkit页面转换为图像的程序,需要一个X服务器)。它看起来不像是在对双引号进行转义。这应该是列表中两个不同的元素,同样
-o
和文件名
是不同的。args=['xvfb run'、'-server args='、'-screen=0、1280x800x24'、'/usr/bin/python'、'/root/AdamN-python-webkit2png-3ae4322/webkit2png.py'、'-o',filename',,]/usr/bin/xvfb run:173行:“-screen=0、1280x800x24”:未找到命令
import subprocess
subprocess.check_call(['xvfb-run', '--server-args=-screen 0 1024x768x24',
'CutyCapt',
'--url=http://www.google.com/',
'--out=google4.png'])