繁体   English   中英

运行多个Python脚本

[英]Running multiple Python scripts

我想创建一个将同时执行2个独立脚本的简单Python程序。 目前,这两个脚本仅显示一个数字序列,但我的意图是将来使用此程序并发运行一些Twitter流程序。

我怀疑我需要使用subprocess.Popen但是我无法完全理解应该在其中添加哪些参数。 在StackOverflow上也有类似的问题,但是那里提供的代码(粘贴在下面)无法显示任何内容。 感谢您的帮助。

我的文件是:

thread1.py
thread2.py

import subprocess

subprocess.Popen(['screen', './thread1.py']))
subprocess.Popen(['screen', './thread2.py'])

正如旅行癖提到的,为什么要以这种方式而不是通过linux命令行呢?

否则,您发布的解决方案将达到其预期的目的,即,您正在命令行中执行此操作:

screen ./thread1.py
screen ./thread2.py

这将打开一个屏幕会话,并在该屏幕会话内运行程序并输出,这样您就不会直接在终端上看到输出。 要解决输出问题,只需执行脚本而不进行屏幕调用:

import subprocess

subprocess.Popen(['./thread1.py'])
subprocess.Popen(['./thread2.py'])

thread1.py的内容:

#!/usr/bin/env python
def countToTen():
  for i in range(10):
  print i

countToTen()

thread2.py的内容:

#!/usr/bin/env python
def countToHundreds():
for i in range(10):
  print i*100

countToHundreds()

然后,不要忘记在命令行上执行此操作:

chmod u+x thread*.py

使用supervisord

主管是过程控制系统,仅用于运行多个命令行脚本。

它具有以下特点:

  • 多重控制流程
  • 自动重启失败的运行
  • 记录stdout和stderr输出
  • 按顺序启动脚本(使用优先级)
  • 命令行实用程序以查看最新的日志输出,停止,启动,重新启动进程

该解决方案仅在基于* nix的系统上有效,在Windows上不可用。

您还可以打开几个命令提示符窗口来一次运行多个Python程序-只需在每个窗口中运行一个即可:

在每个命令提示符窗口中,转到正确的目录(例如C:/ Python27),然后在一个命令提示符窗口中键入“ python YourCodeNo 1 .py”,在下一个命令框中键入“ python YourCodeNo 2 .py”。

我目前正在以这种方式一次运行3个代码,而不会降低任何代码的速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM