我遇到了for循环和glob和os模块的问题。 在python Shell中打印出来但是当我在php中嵌入我的python脚本时它不起作用。
下面的python通过PHP只打印“first”和“second”但不打印“当前文件是:...”。
也许我找到了另一种阅读目录的方法? glob和os模块与PHP不兼容?
蟒:
print("first")
path = 'cat/tryfile'
for infile in glob.glob( os.path.join(path, '*.jpg') ):
print("current file is: " + infile )
print("second")
PHP:
$param1 = "first";
$param2 = "second";
$param3 = "third";
$command = "C:\\python27\\python C:\\Python27\\execprova.py";
#FIRST PYTHON embedding with popen
$command .= " $param1 $param2 $param3 2>&1";
$temp = exec($command, $return);
echo "INIZIO PID";
$pid = popen( $command,"r");
echo "<body><pre>";
while( !feof( $pid ) )
{
echo fread($pid, 256);
flush();
ob_flush();
usleep(100000);
}
pclose($pid);
#SECOND PYTHON embedding with exec
echo (" {PHP inizio command output return ed exec /PHP} ");
$command = "C:\\python27\\python C:\\Python27\\bp1imgsenzaprint.py";
$output = null;
$temp = exec($command);
function success()
{
$mystring = exec('C:\\python27\\python C:\\Python27\\bp1imgsenzaprint.py', $output);
var_dump($output);
var_dump($mystring);
print_r($output);
}
print("SUCCESS");
success();
答案 0 :(得分:1)
在CLI脚本中使用相对路径时务必小心。工作目录和PATH
环境变量通常不是您通常所期望的。
在Python中,您可以使用working directory设置cd
command(类似于Windows / * nix的os.chdir(path)
),这样您就可以安全地使用相对路径,或者使用绝对路径硬编码或将包含目录路径与相对文件路径连接。