Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中将特殊参数传递到os.system?_Python - Fatal编程技术网

如何在Python3中将特殊参数传递到os.system?

如何在Python3中将特殊参数传递到os.system?,python,Python,我在Python3中将参数传递到os.system,如下所示: os.system("scrapy crawl %s -a arg='%s'" % ("googlebook",scrapy_url)) 剪贴url包含特殊字符: '?q=19434&maxResults=40&startIndex=200' 在Spider only Receive中: ?q=19434 如何将特殊单词传递给spider?模块知道如何转义要传递给shell的字符串 然而,shell在这里没有做

我在Python3中将参数传递到os.system,如下所示:

os.system("scrapy crawl %s -a arg='%s'" % ("googlebook",scrapy_url))
剪贴url包含特殊字符:

'?q=19434&maxResults=40&startIndex=200'
在Spider only Receive中:

?q=19434

如何将特殊单词传递给spider?

模块知道如何转义要传递给shell的字符串

然而,shell在这里没有做任何有用的事情,所以最好直接避免它

from subprocess import run
run(["scrapy", "crawl", "googlebook", "-a", "arg=" + scrapy_url],
    # This will raise an exception if scrapy fails
    # which is _probably_ a good idea in most scenarios
    check=True)

当然,考虑到
scrapy
是一个Python库,也许最好的解决方案是简单地
导入scrapy
并从那里获取它。

使用反斜杠将其转义,或者使用
子流程
模块并传递适当的命令行参数: