2016-04-25 67 views
2

我有大約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

+0

你有搜索如何慶典腳本的作品? – Aurel

+0

你在尋找'bash loop'嗎? –

+0

^^否。不是您提到的那個特定問題的重複。 (它回答了有關並行運行python腳本的問題。)雖然這個問題肯定會問到。 – anishsane

回答

7

要動態地運行在一個給定的文件夾您的文件夾中的所有Python腳本,你可以運行bash腳本,如:

#!/bin/bash 

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

我也可以用nosetest使用此方法生成報告。?如果是,那麼如何? – Karthik

+1

只需用'nosetest $ py_file --with-html-out'替換'python $ py_file'行即可。 – mvelay

+0

它爲所有測試生成'results.html'文件。這個名字很常見。所以最後我只得到1個html文件。我需要的是每個html文件的單獨名稱。我怎樣才能做到這一點 ? – Karthik

1

你可以使用一個簡單的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 
. 
. 
. 

執行(python2python3)。

編輯:如果您需要執行文件夾中的所有python腳本,最好使用for循環,就像在他的答案中建議的massiou一樣。

+0

如果我需要使用nosetest生成測試用例報告怎麼辦?我能以同樣的方式做到嗎?! '''''''''''''''''''''在bash腳本中'''''''''可以測試一個--with-html-out''nosetest b --with-html-out''nosetest c --with-html- – Karthik

+1

只需用'nosetest a.py --with-html-out'替換'python a.py'等。您可以添加您在控制檯中使用的任何命令行。 – Aurel

+0

它爲所有測試生成results.html文件。這個名字很常見。所以最後我只得到1個HTML文件。我需要的是每個html文件的單獨名稱。我怎樣才能做到這一點 ? – Karthik

0

您可以使用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 
+0

我的測試文件與問題中的不完全相同。名字完全不同。例如:'audio.py','playback.py','controls.py'等等 – Karthik

+0

你可以製作符號鏈接ln -s playback.py test_python1.py然後運行test_python –

相關問題