Python中的subprocess()参数
我在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,
url,
]
我觉得它把双引号给转义了。有没有什么办法可以解决这个问题呢?
2 个回答
1
这是Python代码,不是命令行指令。
在命令行中,引用符号(引号)会被去掉,以便保留空格。而在Python中,空格是通过其他方式来处理的,所以引号会原封不动地传递下去,成为被调用程序实际看到的一部分参数。
2
虽然你可能在过去两年里已经解决了这个问题,但我今天遇到了同样的问题。解决办法是:
import subprocess
subprocess.check_call(['xvfb-run', '-s', '-screen 0 1024x768x24',
'CutyCapt',
'--url=http://www.google.com/',
'--out=google.png'])
或者
import subprocess
subprocess.check_call(['xvfb-run', '--server-args=-screen 0 1024x768x24',
'CutyCapt',
'--url=http://www.google.com/',
'--out=google4.png'])
假设你已经安装了xvfb。我这里用的是CutyCapt作为示例应用,它需要一个X framebuffer才能运行(这个程序可以把网页转换成图片,但需要一个X服务器)。