Python 脚本在 PHP 中运行时会跳线与 os 和 glob 模块


Python script jump the line with os and glob modules when is runned in PHP

我对 for cycle 和 glob 和 os 模块有问题。在python Shell中打印打印,但是当我在php中嵌入python脚本时,它不起作用。

下面的python通过PHP只打印"first"和"second",但不打印"current file is:..."。

也许我找到了另一种读取目录的方法?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();

在 CLI 脚本中使用相对路径时始终要小心。工作目录和PATH环境变量通常不是您通常期望的。

在 Python 中,您可以使用 os.chdir(path) 设置工作目录(类似于 Windows/*nix 的 cd 命令),以便您可以安全地使用相对路径,或者通过硬编码或将包含目录路径与相对文件路径连接来改用绝对路径。