Laravel 中執行 Python 指令碼

MArtian發表於2022-03-09

使用 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 協議》,轉載必須註明作者和本文連結
我從未見過一個早起、勤奮、謹慎,誠實的人抱怨命運。

相關文章