我的Python脚本是:
base_url = "http://server.com/sync.php?"
phone_url = "phone=%s" % "12345678"
pass_url = "pass=%s" % "xxxxxxxxx"
verif_url = "u=%s" % "12345678"
url = base_url + "%s&%s&%s" % (phone_url,pass_url,verif_url)
req = urllib.urlopen(url)
the_page = req.read()
网址如下:http://server.com/sync.php?phone=123456781&pass=xxxxxxxxx&u=12345678
工作正常,但速度很慢......
所以我尝试使用Subprocess:
proc = subprocess.Popen("php ./sync.php", "shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()
我如何发送参数? (电话,通过,你)
我的php文件的内容:
$username = $_GET["phone"];
$password = $_GET["pass"];
$u = $_GET["u"];
答案 0 :(得分:1)
要向Popen
提供参数,您应将它们存储在列表中:
cmd = ["php", "./sync.php"]
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
您可以看到Popen help第一个参数args
应该是一系列程序参数,或者是一个字符串。
另请注意,您可以使用cwd
参数来精确当前目录。
答案 1 :(得分:0)
我认为你错误地调用了子进程。
P.S。不要使用相对路径,请使用绝对路径。
你可以试试这个:
proc = subprocess.Popen("php /path/to/your/sync.php arg1 arg2 argN", shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()