Laravel框架中使用Process组件包运行Python脚本

2023-06-01 00:00:00 框架 组件 脚本

Laravel框架中使用了

Symfony\Component\Process\Process 

这个依赖包,可以运行各种 CLI 的命令


Laravel中添加调用路由

//routes.php

use Symfony\Component\Process\Process;

Route::get('python', function(){
    $process = Process::fromShellCommandline('python C:\test.py'); // CLI 命令
    $process->run();
   
    if (!$process->isSuccessful()) {
        throw new ProcessFailedException($process);
    }
   
    // 获取脚本输出
    return $process->getOutput();
});

创建Python脚本文件

#!/usr/bin/python
#-*-conding-*-
#创建文件,并写入数据:要求不能与现存系统文件重名

import os

def makefile(path,content):
    if os.path.exists(path):
        if os.path.isdir(path):
            f = open('hello world.txt','w+')
            f.write(content)
            f.seek(0)
            read = f.readline()
            f.close()
            print(read)
        else:
            print('please input the dir name')
    else:
        print('the path is not exists')
path = "C:"

content = "hello world"

makefile(path,content)


最后:

里面执行最后也是用了exec 函数,所以该函数不能被禁用

相关文章