首页 > 编程语言 >根据绝对路径 python 后台打开程序

根据绝对路径 python 后台打开程序

时间:2023-11-18 11:33:10浏览次数:39  
标签:returncode stdout python subprocess command result stderr 后台 绝对路径

import subprocess

# 不适用于关闭程序/进程

# subprocess.run
# 等候运行结束
# returncode=0, stdout='', stderr=''

# 后台运行, 避免阻塞
# 避免shell注入gongji
# os.system 需要双引号(以避免空格), subprocess 不需要
# cmd直接输入路径 如果存在空格 需要双引号
# returncode: None
# 运行成功 <Popen: returncode: None args: '...> <_io.TextIOWrapper name=3 encoding='cp936'> <_io.TextIOWrapper name=4 encoding='cp936'>
def fun_open(command):
    try:
        result = subprocess.Popen(
            args=command,
            shell=False,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True)
        print(
            '运行成功' if (result.returncode==None) or (result.returncode==0) else '运行失败',
            str(result),
            result.stdout,
            result.stderr
        )
    except FileNotFoundError:
        print(command, "not correct")
        raise

fun_open(path)

标签:returncode,stdout,python,subprocess,command,result,stderr,后台,绝对路径
From: https://blog.51cto.com/u_16055028/8460544

相关文章

  • Python如何使用Networkx实现复杂的人物关系图?
    (Python如何使用Networkx实现复杂的人物关系图?)1简单引入日常工作、生活中我们经常会遇到一些复杂的事务关系,比如人物关系,那如何才能清楚直观的看清楚这些任务关系呢?比如我们从网上搜索1个人物关系图,大家看看:声明:以下图片来源于网络,如果涉及版权问题,请联系作者删除。本文仅......
  • Conda管理Python版本
    查看Python版本查看当前环境的Python版本condaactivate&&python-V查看指定环境condaactivatetest&&python-V创建Python环境先搜索conda有哪些python版本condasearch--full--namepython根据搜索出来的版本安装condacreate--nametestpython=3.9.7或......
  • 【小沐学Python】Web服务器搭建(Nginx、IIS)
    1、Web服务器web服务器一词可以代指硬件或软件,或者是它们协同工作的整体。6、NginxNginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器,多用于高连接并发。6.1简介https://nginx.org/en/Nginx是lgorSysoev为俄罗斯......
  • Python | Opencv的人脸检测和人类识别
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • python 赋值、浅拷贝、深拷贝的区别
    b=a: 赋值引用,a和b都指向同一个对象。b=a.copy(): 浅拷贝,a和b是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。b=copy.deepcopy(a): 深度拷贝,a和b完全拷贝了父对象及其子对象,两者是完全独立的。对于可变的序列,切片操作符:是浅拷贝 比如:a=b[:]......
  • python:第十六章:赋值运算符
    一,什么是赋值运算符?赋值运算符的执行顺序赋值运算符=它用来把值赋给变量。运算符右边的表达式先计算得到结果,再将结果赋值给左边的变量12345#赋值x=5y=x+3print("x=",x)print("y=",y)运行结果:x=5y=8二,链式赋值就是同时给......
  • python:第十七章:布尔运算符(逻辑运算符)
    一,布尔运算符有哪些?and运算是与运算,只有两个值都为True,and运算结果才是True,如下表abaandbTrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalseor运算是或运算,只要其中有一个值为True,or运算结果就是TrueabaorbTrueTrueT......
  • python:第十八章:比较运算符
    一,比较运算符是什么?用于比较两个值的运算符。作用:对两个值进行比较,并返回一个布尔值(True或False)作为比较的结果1,比较运算符有哪些主要有六种比较运算符:小于(<)小于等于(<=)大于(>)大于等于(>=)等于(==)不等于(!=)2,字符串的比较规则:按字母的顺序比较:顺序越靠前则值越小,顺......
  • python:第十九章:数据类型之None
    一,什么是None?None表示空值,其类型为NoneType,内存中值为None的对象是同一个实例123456789#None的类型print("None的类型:",type(None)) #输出<class'NoneType'> #值为None的对象是同一个实例,#由于内存None只有一个,所以aisb的结果为True......
  • python:第二十章:数据类型转换之bool
    一,如何得到对象的布尔值?Python中,所有的数据都是对象,如整数、浮点数、字符串、列表、字典等。每个对象都有一个布尔值,用于表示对象的真假内置函数bool()能用来获取对象的布尔值。它把对象转换为布尔值,返回True或False,表示对象为真或假看例子:非0数字的布尔值为True,0的布尔值......