1

ターミナルの同じディレクトリにある複数の .py ファイルを実行する方法はありますか?

例:

3 つの .py ファイルがあるとします。

x.py
y.py
z.py

これらのファイルをディレクトリabcに保存しました

ターミナルで x.py を実行します。

python ~/abc/x.py

y.py と z.py を実行するには、それを繰り返す必要があります

3 つのスクリプトすべてを同時に実行する方法はありますか? それともショートカット?複数の端末ウィンドウを開いて実行するよりも時間を節約できますか?

ありがとう

4

4 に答える 4

1

bash の場合:

for i in x y z; do python ~/abc/$i.py & done

このループは、文字列「x」、「y」、および「z」を反復します。各反復変数$iはそれらの別のものです。したがって、最初の反復で$ix、 です。そう~/abc/$i.pyです~/abc/x.py。2 番目の反復は y のみで同じで、3 番目$ixです。

だからbash実際に

python ~/abc/x.py &
python ~/abc/y.py &
python ~/abc/z.py &

それはあなたが求めたものです。

&、バックグラウンドで実行します。これは、呼び出す任意のコマンドに対して行うことができます。

于 2013-06-30T18:42:46.077 に答える
1

私はよく(bashで)のようなものを使用しました

for file in $( ls *.py )
  do
    python $file
  done

多くのpythonファイルがあり、それらすべてを実行したいときに、thosを使用します。

于 2013-06-30T18:47:31.347 に答える
0

バッシュファイル

ls *.py | xargs -I{} sh -c "echo {}; python {}"

コマンドを使用して、現在のディレクトリにあるすべての .py ファイルを取得できますls *.py

xargs -I標準入力から実行するために使用します

sh -c コマンドでディレクトリ内のすべての .py を実行すると、python {} 自動的に {} が .py ファイルに置き換えられます

于 2019-11-17T12:53:21.880 に答える
0

他の人がシェル ソリューションを提供しているので、pythonic のソリューションを提案させてください。

from multiprocessing import Process

import x
import y
import z

# Assuming you have a main function f in each module

p1 = Process(target=x.f, args = (1,)) # or whatever args
p1.start()
p2 = Process(target=y.f, args = (2,))
p2.start()
p3 = Process(target=z.f, args = (3,))
p3.start()

これは Python 3.3 のコードです。Python 2.7 では少し異なる方法で行う必要があるかもしれません。

たとえば、 、x.fy.fおよびz.fがすべて定義されている場合

def f(x):
    print(x)

上記のコードは次のように出力します。

1

2

3

おそらく、しかし必ずというわけではありませんが、この順序で。

于 2013-06-30T18:55:42.220 に答える