python非阻塞启动进程

python启动进程有很多方式,有阻塞类型的和非阻塞类型的。使用subprocess中的Popen会以非阻塞形式来启动进程,而subprocess中的call会以阻塞方式来运行,下面是我写的一个启动python文档查看器后自动启动浏览器的脚本

#coding=utf-8

__doc__ = '''
打开python的标准文档,并启动浏览器浏览
'''

from subprocess import call,Popen
import pydoc
import time
import os

#配置选项
PORT = 9999
JZ_BROWSER = r'C:\Users\Administrator\AppData\Roaming\hao123JuziBrowser\hao123Juzi.exe'

def start_browser(doc_server):
    cmd = '%s %s' %(JZ_BROWSER, 'http://localhost:%d' % (PORT,))
    #不可以直接使用shell.call,会阻塞进程,从而导致无法服务
    #call(cmd, shell = False)
    #os.popen(cmd)
    Popen(cmd)
    print('Document start working....')

pydoc.serve(PORT, callback = start_browser)


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值