你好我有一个解析脚本的Python脚本如下,它使用2个输入
import urllib
import urllib2
code, num = raw_input().split(' ')
parse(num,code)
print success
exit()
现在我正在尝试使用php文件传递raw_input,但它无法正常工作
PHP脚本
<?php
$num="36";
$code="a";
$result = exec('python test.py "$code $num"');
echo $result;
?>
请帮帮我
答案 0 :(得分:2)
您没有将任何传递给raw_input()
。 raw_input()
从stdin
管道读取,而不是从命令行读取。
如果您想从命令行中读取,请使用sys.argv
:
import sys
code, num = sys.argv[1].split()
您需要使用字符串连接来构建PHP调用:
$result = exec('python test.py "' . $code . ' ' . $num . '"');
您可以通过将两个值作为两个单独的命令行参数(这里使用引号,虽然这对于您的特定简单情况可选)来避免必须在Python中拆分:
$result = exec('python test.py "' . $code . '" "' . $num . '"');
并在Python中使用:
import sys
code, num = sys.argv[1:]
答案 1 :(得分:2)
这一行:
$result = exec('python test.py "$code $num"');
将始终传递原始字符串“$ code”和“$ num”。要传递变量的实际值,请执行以下操作:
$result = exec('python test.py "'.$code.' '.$num.'"');