国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

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

我正在做的是:

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

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

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

我的 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 不會(huì)做任何事情(當(dāng)我使用常規(guī)檔案名稱(chēng)子 sys.argv[1] 時(shí)有效):

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')

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

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

我很困惑,因?yàn)槌?pandas 部分之外,一切似乎都運(yùn)作良好並且連接良好。有人可以幫忙嗎?我是 PHP 新手,非常感謝它。

P粉536532781
P粉536532781

全部回覆(1)
P粉488464731

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

如果您的伺服器上有 PHP 引擎,則可以?xún)?chǔ)存 PHP 伺服器端,並在 POST 回應(yīng)中傳回新建立的 PHP 頁(yè)面的公開(kāi)連結(jié)。

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