如何运行多个python脚本?目前我运行一个像python script1.py
。
我已经尝试过python script1.py script2.py
但这不起作用:只运行第一个脚本。另外,我尝试过使用这样的单个文件;
import script1
import script2
python script1.py
python script2.py
然而,这也不起作用。
使用Bash:
python script1.py &
python script2.py &
这就是整个剧本。它将同时运行两个Python脚本。
Python可以自己做同样的事情,但它需要更多的打字,对于手头的问题是一个糟糕的选择。
我认为你可能会采取错误的方法来解决你的问题,我想听听你的意见。
同时运行两个Python进程的最简单的解决方案是从bash文件运行它们,并告诉每个进程使用&
shell运算符进入后台。
python script1.py &
python script2.py &
有关并行运行多个进程的更受控制的方法,请查看Supervisor project,或使用multiprocessing module从Python内部编排。
我必须这样做并使用子进程。
import subprocess
subprocess.run("python3 script1.py & python3 script2.py", shell=True)
我在使用Python IDLE的Windows 7中工作。我有两个程序,
# progA
while True:
m = input('progA is running ')
print (m)
和
# progB
while True:
m = input('progB is running ')
print (m)
我打开IDLE然后打开文件progA.py。我运行程序,当提示输入时,我输入"b" + <Enter>
然后输入"c" + <Enter>
我在看这个窗口:
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progA.py =
progA is running b
b
progA is running c
c
progA is running
接下来,我回到Windows Start并再次打开IDLE,这次打开文件progB.py。我运行程序,当提示输入时,我输入"x" + <Enter>
然后输入"y" + <Enter>
我在看这个窗口:
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progB.py =
progB is running x
x
progB is running y
y
progB is running
现在两个IDLE Python 3.6.3 Shell程序同时运行,一个shell运行progA而另一个运行progB。
您可以使用Gnu-Parallel同时运行命令,适用于Windows,Linux / Unix。
parallel ::: "python script1.py" "python script2.py"
我在node.js(在Windows 10上)执行此操作,方法是打开2个单独的cmd实例并在每个实例中运行每个程序。
这样做的好处是每个脚本都可以轻松看到写入控制台。
我看到在python中可以做同样的事情:2个shell。
您可以同时运行IDLE / Python shell的多个实例。因此,打开IDLE并运行服务器代码,然后再次打开IDLE,这将启动一个单独的实例,然后运行您的客户端代码。
您尝试以下方法来运行多个python脚本:
import os
print "Starting script1"
os.system("python script1.py arg1 arg2 arg3")
print "script1 ended"
print "Starting script2"
os.system("python script2.py arg1 arg2 arg3")
print "script2 ended"
注意:多个脚本的执行完全取决于下划线的操作系统,它不会是并发的,当我回答它时,我是Python的新手。
更新:我找到了一个包:https://pypi.org/project/schedule/上面的包可以用来运行多个脚本和功能,请检查这个,也许在周末也会提供一些例子。
即:导入计划导入时间导入脚本1,脚本2
def job():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).days.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
while True:
schedule.run_pending()
time.sleep(1)
如果要并行运行两个Python脚本,则只需在脚本末尾包含以下内容:
if __name__=="__main__":
Main()