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 协议》,转载必须注明作者和本文链接
悲观者永远正确,乐观者永远前行。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5

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

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

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

3年前 评论

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