链接多个python脚本以一个接一个地运行

问题描述 投票:0回答:2

我有三个python脚本。一个从数据库(data_for_report.py)收集数据,另一个从该数据和创建者.xlsx文件(report_gen.py)生成报告,最后一个修改该excel文件的样式(excel_style.py)。

现在所有三个文件都在同一个目录中,我现在所做的只是在解释器中一个接一个地执行脚本来获取报告。我希望只需点击一下即可完成所有工作,因此需要此报告的人员可以自行完成。我想过用pyinstaller创建一个exe,但我想不出一种方法将我的脚本链接在一起,这样当data_for_report.py结束它的工作时,report_gen.py就会启动等等。

我试着把

subprocess.call("report_gen.py", shell=True)

在第一个脚本的末尾,但没有任何反应,我只是得到这个:

出[2]:1

我怎么能这样做?

python sequential
2个回答
1
投票

实际上,这个问题可以通过批量编程来解决。你的python文件将分批运行,即一个文件接着另一个。我假设你的所有三个python文件都驻留在文件夹ReportGenerator中,路径为C:\ReportGenerator,因此相应地调整你的系统的PATH(请关心\和/在具有python文件的文件夹的PATH中)。

您的文件需要执行:

data_for_report.py
report_gen.py
excel_style.py

现在打开一个记事本文件并写下面的行。

cd C:/ReportGenerator
python data_for_report.py
python report_gen.py
python excel_style.py
PAUSE

现在使用file_Name.bat将此文件保存在系统中您想要的任何位置并记住它。保存后,批处理文件图标将在保存时形成。现在打开窗口命令提示符,只需将此批处理文件拖到窗口命令提示符。


1
投票

为什么不在函数中封装每个脚本的所有逻辑,创建一个导入所有3个函数的新文件,然后运行该脚本。

所以,如果脚本是

data_佛如_report.朋友

def f1():
  ...

report_跟.朋友

def f2():
  ...

excel_style.朋友

def f3():
  ...

然后你将运行的最终脚本是:

from data_for_report import f1
from report_gen import f2
from excel_style import f3

f1()
f2()
f3()
© www.soinside.com 2019 - 2024. All rights reserved.