如何在一个接一个的文件夹中运行多个python文件
我有大约20个python文件。如何在一个接一个的文件夹中运行多个python文件
我每次运行在终端这些文件这种形式陆续:
python a.py
python b.py
python c.py
python d.py
python e.py
python f.py
python g.py
.
.
.
(我已经提供了一般的文件名在这里)
这个过程需要大量的时间。
是否有可能通过任何脚本一个接一个地运行这些文件..?
如果可能,那么如何..?
请提供代码,如果可能的...
我都挺过来了一些站点,使用bash脚本,我们可以做到这一点就知道..
我不知道如何实现它。
如果你可以建议任何其他方法,即使这将是有益的。
编辑:
,我需要生成使用nosetests每个文件报告。
我正在面对的鼻测问题是,它创建了一个名为results.html
的HTML文件。
每次创建报告时,最新的HTML文件都会替换旧的HTML文件。因为名字相同。
所以我现在正在做的是,每次我为Python文件运行nosetests时重命名报告。运行第二个文件nosetests,被生成的报告,并将其重命名..如此下去......
如果有人能告诉我怎样才能解决这个问题,这将是有益的..
我的工作在Ubuntu 14.04
要动态地运行在一个给定的文件夹您的文件夹中的所有Python脚本,你可以运行bash脚本,如:
#!/bin/bash
for py_file in $(find $YOUR_FOLDER -name *.py)
do
python $py_file
done
你可以使用一个简单的bash脚本,将执行命令的一个又一个:如果你的脚本是为了在多个平台上,我强烈建议您精确的Python版本使用
#!/bin/bash
python a.py
python b.py
python c.py
python d.py
python e.py
python f.py
python g.py
.
.
.
执行(python2
或python3
)。
编辑:如果您需要执行文件夹中的所有python脚本,最好使用for
循环,就像在他的答案中建议的massiou一样。
如果我需要使用nosetest生成测试用例报告怎么办?我能以同样的方式做到吗?! '''''''''''''''''''''在bash脚本中'''''''''可以测试一个--with-html-out''nosetest b --with-html-out''nosetest c --with-html- – Karthik
只需用'nosetest a.py --with-html-out'替换'python a.py'等。您可以添加您在控制台中使用的任何命令行。 – Aurel
它为所有测试生成results.html文件。这个名字很常见。所以最后我只得到1个HTML文件。我需要的是每个html文件的单独名称。我怎样才能做到这一点 ? – Karthik
如果你希望他们在平行跑了有在这个问题上的一些有用的信息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 ...
希望它有帮助!
您可以使用bash通配符
创建示例文件
for f in test_python{1..9}.py; do echo "print __file__" > $f; done
文件索引
ls test*
test_python1.py test_python2.py test_python3.py test_python4.py test_python5.py test_python6.py test_python7.py test_python8.py test_python9.py
所需顺序运行它们:
for f in test_python{1..9}.py; do python $f ; done
我的测试文件与问题中的不完全相同。名字完全不同。例如:'audio.py','playback.py','controls.py'等等 – Karthik
你可以制作符号链接ln -s playback.py test_python1.py然后运行test_python –
你有搜索如何庆典脚本的作品? – Aurel
你在寻找'bash loop'吗? –
^^否。不是您提到的那个特定问题的重复。 (它回答了有关并行运行python脚本的问题。)虽然这个问题肯定会问到。 – anishsane