如何在一个文件夹中运行多个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 版本(python2
或 python3
)。
编辑: 如果您需要执行文件夹中的所有 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
我有大约 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 文件。因为名字一样。
所以我现在正在做的是,每次 运行 对 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 版本(python2
或 python3
)。
编辑: 如果您需要执行文件夹中的所有 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