亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

在 PHP 中執(zhí)行 python 腳本(新增至 Pandas df 並儲存檔案)
P粉536532781
P粉536532781 2024-03-27 21:05:37
0
1
681

當(dāng)使用者選擇 xlsx 檔案並透過 POST 提交時,我想取得該文件,將其放入 pandas df 中,進行一些資料清理/格式化,然後將其作為可下載的 csv 發(fā)送回瀏覽器。

我已經(jīng)讓 python/pandas 腳本正常運作了。 我已經(jīng)能夠成功地將一個簡單的 $PHP 變數(shù)(檔案名稱)傳遞給 Python 腳本,在 Python 中列印出來,然後在 PHP 中回顯它。 ……但我無法運行 Python 腳本的其餘部分(pandas 部分)。就好像我的腳本的其餘部分不存在一樣。

我正在做的是:

  1. 將臨時提交的檔案從 $_FILES 移到另一個名為「uploads」的資料夾(同一目錄)。
  2. 取得新儲存檔案的路徑。
  3. 將其傳遞到 Python 腳本並將格式化文件保存到上傳/完成 - 我認(rèn)為這是我在某處失敗的地方

#(我還沒有弄清楚如何將文件發(fā)送回瀏覽器的部分 - 只是嘗試先獲取文件)。

我在 htdocs 資料夾中安裝了 python venv,並且它已啟動。

我的 PHP:

$fname = $_FILES["upload"]["tmp_name"];
$upload_path = 'uploads/' . $fname;

$output = shell_exec('/Applications/MAMP/htdocs/venv/bin/python3 /Applications/MAMP/htdocs/data_cleanse.py ' . $upload_path);
echo $output;

我的Python可以工作:

import sys
print("Variable passed to Python is: " + sys.argv[1])

我的 Python 不會做任何事情(當(dāng)我使用常規(guī)檔案名稱子 sys.argv[1] 時有效):

import sys
import pandas as pd

uploaded_file = sys.argv[1]

df = pd.read_excel(uploaded_file)
df.to_csv('uploads/completed/completed_doc.csv')

我還沒有嘗試將 df 列印到 PHP。我只是想看看是否可以產(chǎn)生 csv 檔案。

我嘗試了 escapeshellcmd 和系統(tǒng),但沒有成功。我在這裡讀到了一個非常相似的問題,其中提到了 chmod 777 用於設(shè)定權(quán)限。我這樣做是為了更改權(quán)限,現(xiàn)在我的資料夾可供所有人讀寫,但它仍然無法運作。

我很困惑,因為除了 pandas 部分之外,一切似乎都運作良好並且連接良好。有人可以幫忙嗎?我是 PHP 新手,非常感謝它。

P粉536532781
P粉536532781

全部回覆(1)
P粉488464731

聽起來你很接近。 問題在於 PHP 是在伺服器端處理的,因此如果您希望 POST 返回網(wǎng)頁程式碼,請發(fā)送回 HTML,因為 PHP 是用於在伺服器端產(chǎn)生 HTML 的。

如果您的伺服器上有 PHP 引擎,則可以儲存 PHP 伺服器端,並在 POST 回應(yīng)中傳回新建立的 PHP 頁面的公開連結(jié)。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板