所以我一直在尝试将.xlsx文件上传到html文件(网站(,然后重新格式化.xlsx文件以将其转换为数据库,然后最终能够搜索数据库。
我为此有 3 个脚本文件,validation.py
、reader.py
和server.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应用程序。
- 显示文件选取器
- 运行一组 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应用程序。