如何使用 html 和 javascript 选择一个文件,并通过单击按钮使用 python3 命令在命令行中运行它



所以我一直在尝试将.xlsx文件上传到html文件(网站(,然后重新格式化.xlsx文件以将其转换为数据库,然后最终能够搜索数据库。

我为此有 3 个脚本文件,validation.pyreader.pyserver.py它们共存以运行搜索数据库 Web 应用程序。

我使用终端命令来运行它们,我想自动执行此过程,以便我可以:

1.选择一个文件并运行它并进行验证 (python3 validation.py -i (chosen file)(

2.读取文件 (python3 reader.py -i (chosen file) -o (category of file (i.e. chosen file is phone numbers so category would be numbers)(

3.运行 (server.py -m (category of file_model)(

这将打开一个localhost://8080文件。我想自动化验证、读取器和服务器命令,以便我可以选择一个文件,然后在单击按钮时生成命令,然后打开我的localhost

这可能是一个好方法吗?

听起来你正在尝试制作一个实现两个目标的HTML和JavaScript应用程序。

  1. 显示文件选取器
  2. 运行一组 Python 命令

我建议你为此使用Electron。它允许您创建可以与Python等终端命令交互的HTML和JavaScript应用程序。

确保先安装 Node.js 才能使用 Electron。

要开始,您将需要电子快速入门。我已经在 GitHub 上链接了它,你可以这样得到它。

# Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
npm install

在文件夹中,您将找到熟悉的index.html文件。若要将文件选取器添加到应用,请使用以下 HTML。您可以在 MDN 文档中阅读更多相关信息。

<input type="file" id="myFilePicker">

为了使 Python 命令在选取文件时运行,可以使用快速入门附带的preload.js文件。这个JavaScript可以与你的HTML和你的计算机进行交互。将其内容替换为以下代码。

window.addEventListener('DOMContentLoaded', () => {
document.getElementById('myFilePicker').addEventListener('change', function(event) {
let filePath = this.files[0].path
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", filePath]);
pythonProcess.stdout.on('data', (data) => {
// You have data from Python
});
})
})

此 JavaScript 执行以下操作:

  • 等待 HTML 加载
  • 侦听要更改的文件选取器
  • 获取所选文件的路径
  • 运行 python 脚本,将文件路径作为参数传递。

这个答案使用了 Python 脚本代码。在箭头函数中显示You have data from Python,您可以自由地重复 Python 脚本代码。然后,您可以运行第二个和第三个脚本。

然后,您可以在终端中运行npm start以启动新的Electron应用程序。

最新更新