1

你好,我有一个 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;
?>

请帮我

4

2 回答 2

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:]
于 2013-07-15T15:32:24.723 回答
2

这一行:

$result = exec('python test.py "$code $num"');

将始终传递原始字符串“$code”和“$num”。要传递变量的实际值,请执行以下操作:

$result = exec('python test.py "'.$code.' '.$num.'"');
于 2013-07-15T15:46:26.880 回答