如何在一个文件夹中运行多个python文件一个接一个

How to run multiple python file in a folder one after another

我有大约 20 个 python 文件。

每次我运行终端里的这些文件都是这样一个接一个的:

python a.py
python b.py
python c.py
python d.py
python e.py
python f.py
python g.py
.
.
.

(我在这里提供了一般的文件名)

这个过程需要很多时间。

是否可以通过任何脚本运行将这些文件一个接一个地放在一起..?

如果可以,那怎么办?

如果可能请提供代码...

我通过几个网站了解到,使用 bash 脚本我们可以做到这一点..

不知道怎么实现。

如果您能提出任何其他方法,即使那样也会有所帮助。

编辑:

我需要使用 nosetests 为每个文件生成报告。

我遇到的 nosetests 问题是,它创建了一个名为 results.html.

的 HTML 文件

每次创建报告时,最新的 HTML 文件会替换旧的 HTML 文件。因为名字一样。

所以我现在正在做的是,每次 运行 对 python 文件进行 nosetests 时重命名报告。 运行 第二个文件的 nosetests,报告生成,并重命名..它继续...

如果有人能告诉我如何克服这个问题,那将会很有帮助..

我正在研究 Ubuntu 14.04

您可以使用一个简单的 bash 脚本,它将一个接一个地执行您的命令:

#!/bin/bash
python a.py
python b.py
python c.py
python d.py
python e.py
python f.py
python g.py
.
.
.

如果您的脚本要在多个平台上使用,我强烈建议您精确执行 python 版本(python2python3)。

编辑: 如果您需要执行文件夹中的所有 python 脚本,您最好像 massiou 建议的那样使用 for 循环在他的回答中。

如果您希望它们 运行 并行,这个问题中有一些有用的信息 How do you run multiple programs in parallel from a bash script?

您的命令应如下所示:

python a.py & python b.py & python c.py ....

如果您希望他们一个接一个地 运行 然后将 & 替换为 ;

python a.py;python b.py;python c.py ...

希望对您有所帮助!

为了 运行 动态地在给定文件夹 YOUR_FOLDER 中的所有 python 脚本,您可以 运行 bash 脚本如:

#!/bin/bash

for py_file in $(find $YOUR_FOLDER -name *.py)
do
    python $py_file
done

您可以使用bash通配符

创建示例文件

for f in  test_python{1..9}.py; do echo  "print __file__" > $f; done

文件已编入索引

ls test*

test_python1.pytest_python2.pytest_python3.pytest_python4.pytest_python5.pytest_python6.pytest_python7.pytest_python8.pytest_python9.py

运行 它们按所需顺序排列:

for f in  test_python{1..9}.py; do python $f ; done