如何运行多个python脚本?目前我像python script1.py
一样运行。{/ p>
我已经尝试了python script1.py script2.py
但这并不起作用:只运行第一个脚本。另外,我尝试过使用这样的单个文件;
import script1
import script2
python script1.py
python script2.py
然而,这也不起作用。
答案 0 :(得分:41)
使用Bash:
python script1.py &
python script2.py &
这就是整个剧本。它将同时运行两个Python脚本。
Python本身可以做同样的事情但是需要更多的打字,对于手头的问题来说是一个糟糕的选择。
我认为你可能会采取错误的方法来解决你的问题,而且我想听听你的意见。
答案 1 :(得分:17)
同时运行两个Python进程的最简单的解决方案是从bash文件运行它们,并告诉每个进程使用&
shell运算符进入后台。
python script1.py &
python script2.py &
要以更加可控的方式并行运行多个进程,请查看Supervisor project,或使用multiprocessing module从Python内部进行编排。
答案 2 :(得分:1)
我必须这样做,并使用了子过程。
import subprocess
subprocess.run("python3 script1.py & python3 script2.py", shell=True)
答案 3 :(得分:0)
我在使用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。
答案 4 :(得分:0)
您可以使用Gnu-Parallel同时运行命令,适用于Windows,Linux / Unix。
parallel ::: "python script1.py" "python script2.py"
答案 5 :(得分:0)
我在node.js(在Windows 10上)通过打开2个单独的cmd实例并在每个实例中运行每个程序来执行此操作。
这样做的好处是每个脚本都可以轻松看到写入控制台。
我看到在python中可以做同样的事情:2个shell。
您可以同时运行IDLE / Python shell的多个实例。因此,打开IDLE并运行服务器代码,然后再次打开IDLE,这将启动一个单独的实例,然后运行您的客户端代码。
答案 6 :(得分:0)
如果要并行运行两个Python脚本,则只需在脚本末尾添加以下内容:
if __name__=="__main__":
Main()
答案 7 :(得分:0)
我认为最简单的方法是使用PyCharm IDE并安装“ multirun”插件。我在这里尝试了很多解决方案,但最后这个对我有用!
答案 8 :(得分:-2)
您尝试以下方法来运行多个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/ 上面的包可以用来运行多个脚本和功能,请检查这个,也许在周末也会提供一些例子。
即: 进口计划 进口时间 import script1,script2
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)