如何从一个脚本运行多个Python/Shell脚本
我有4个python和shell脚本,我想从一个python脚本中一个接一个地运行它们 那么让我们说:如何从一个脚本运行多个Python/Shell脚本,python,shell,subprocess,Python,Shell,Subprocess,我有4个python和shell脚本,我想从一个python脚本中一个接一个地运行它们 那么让我们说: import script1 import script2 import script3 python script1.py & #do something here to check if script1 has been completed and move to script 2 python script2.py & #do something here to ch
import script1
import script2
import script3
python script1.py &
#do something here to check if script1 has been completed and move to script 2
python script2.py &
#do something here to check if script2 has been completed and move to script 3
python script3.py &
#do something here to check if script3 has been completed and move to script 4 which is a shell script.
有人能帮忙吗?提前谢谢 我会这样做:
#!/usr/bin/env python
import subprocess
subprocess.run(['python', 'script1.py'])
subprocess.run(['python', 'script2.py'])
subprocess.run(['python', 'script3.py'])
如果只希望在前一个脚本成功运行时运行每个脚本:
#!/usr/bin/env python
import subprocess
subprocess.run('python script1.py && python script2.py && python script3.py', shell=True)
我在这里使用的是shell=True
,因为我依赖shell来解释&&
,并且只有在前一个进程成功的情况下才让下一个进程运行
如果希望它们在后台并行运行,请执行以下操作:
#!/usr/bin/env python
import subprocess
subprocess.run('python script1.py &', shell=True)
subprocess.run('python script2.py &', shell=True)
subprocess.run('python script3.py &', shell=True)
我在这里使用的是shell=True
,因为我依赖shell来解释&
意味着我希望进程在后台运行,这样我就可以在进程运行时继续执行其他操作
一般来说,我不会为此使用Python,我会编写一个
bash
脚本,如下所示:
#!/bin/bash
python script1.py
python script2.py
python script3.py
#!/usr/bin/env python
print('I am a Python script with shebang')
另外,一般来说,我会将Python脚本的第一行设为shebang,如下所示:
#!/bin/bash
python script1.py
python script2.py
python script3.py
#!/usr/bin/env python
print('I am a Python script with shebang')
然后,我将使用以下命令使脚本可执行:
chmod +x script.py
现在,不要使用以下命令运行它:
python script.py
内核知道要使用哪个解释器,因此我不必每次都告诉它,我可以简单地使用以下命令运行它:
script.py
如果它所在的目录在我的路径上。或者,如果它不在我的路径上,我需要:
/path/to/script.py
他们是否定义了
main
func?他们是否有if\uuu name==“main”:
子句?不,那些脚本没有这个子句。因此只要import
就可以让它们运行(它实际上只是执行脚本…)类似这样的事情吗?试着养成习惯,将shebang作为脚本的第一行,这样读者和内核就知道您要为哪个解释器编写,这样您就不必一直键入python script.py
。