Laravel 中运行 Python 脚本

使用 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)

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();
});

其实这里跟 Laravel 框架没有什么关系,使用的是 Symfony\Component\Process\Process 这个依赖包,可以运行各种 CLI 的命令,这里只是抛砖引玉。

具体可以查看 Symfony 的文档

本作品采用《CC 协议》,转载必须注明作者和本文链接
悲观者永远正确,乐观者永远前行。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

我看了下代码,发现最下面其实还是一个 exec $command 实现的。

3年前 评论
陈先生 (作者) 3年前
MArtian (楼主) 3年前
mengdodo

换成rabitmq接任务好点,我感觉

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!