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

时间:2019-04-26 05:49:31

标签: python sequential

我有三个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

我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

因此,如果脚本是

  

data_for_report.py

def f1():
  ...
  

report_gen.py

def f2():
  ...
  

excel_style.py

def f3():
  ...

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

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

f1()
f2()
f3()

答案 1 :(得分:1)

实际上,可以通过使用批处理程序解决此问题。您的python文件将批量运行,即一个文件一个接一个。我假设您所有的三个python文件都位于文件夹ReportGenerator中,且Path为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将此文件保存在系统中您想要的任何位置,并记住该文件。保存后,批处理文件图标将在保存时形成。 现在,打开窗口命令提示符,只需将此批处理文件拖到窗口命令提示符。