将多个 python 脚本一个接一个地链接到 运行

Linking multiple python scripts to run one after another

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

现在所有三个文件都在同一个目录中,我现在所做的只是在解释器中一个接一个地执行脚本来获取报告。我想让一切都一键完成,这样需要这份报告的人就可以自己做。我想用 pyinstaller 创建一个 exe,但我想不出一种方法来 link 我的脚本,这样当 data_for_report.py 结束它的工作时 report_gen.py 已启动,依此类推。

我试着把

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

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

Out[2]: 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()

其实这个问题可以用批处理来解决。您的 python 个文件将 运行 分批处理,即一个文件接一个文件。我假设您的所有三个 python 文件都位于文件夹 ReportGenerator 中,路径为 C:\ReportGenerator 因此相应地调整您系统的 PATH(请注意文件夹的 PATH 中的 \ 和 / python 个文件)。

您需要执行的文件是:

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 将此文件保存在系统中您想要的任何位置并记住它。保存后,批处理文件图标将在保存时形成。 现在打开 window 命令提示符并将此批处理文件拖到 window 命令提示符。