python脚本调用外部程序的若干种方式以及利弊

脚本执行外部程序的常用几种方式:

# os.popen(path)
# subprocess.run(cmd,shell=True)
# subprocess.check_call(cmd,shell = True)
# os.system(command)
# win32api.ShellExecute(0, 'open', path, '', '', 0)

 

os.popen(path) 和 os.system(command)

这两种执行的效果是差不多的,都通过CMD把程序跑起来,然而他们启动都可能会弹出CMD的黑框,注意是可能!,有些程序不会

看效果图:

 

 

subprocess.check_call(path)  subprocess.call(path), subprocess.run(path)

这三种方式需要导subprocess库
这三种方式启动外部程序是在代码运行到此行时进入阻塞,等到外部程序运行结束才会继续往下执行
此处还有一个非常奇怪的现象:

 

 

在pycharm里通过这三种方式打开QQ.EXE,点击结束程序时会把QQ进程也关掉,QQ登陆后再点结束是不会被关的

疑问待后期有资料再补充

 

另外一种不太常见的方式就是

win32api.ShellExecute(0, 'open', path, '', '', 0)

这种方式是我目前用得最舒服的一种,特点是:1.不阻塞当前进程,2.关闭当前脚本不影响被开启程序的执行

但是需要注意的是,用它需要安装win32api库,可以自行网上搜资料下载

 

 

资料不全,纯手码,还望能帮到同仁们!谢谢

 

转载于:https://www.cnblogs.com/dongxixi/p/10829263.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决: Your ApplicationContext is unlikely to start due to a @ComponentScan of the default

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 用 springboot 搭一个小应用 报错: Your ApplicationContext is unlikely to start due to a ComponentScan of the defaul…

藏经阁计划发布一年,阿里知识引擎有哪些技术突破?

为什么80%的码农都做不了架构师?>>> 阿里妹导读:2018年4月阿里巴巴业务平台事业部——知识图谱团队联合清华大学、浙江大学、中科院自动化所、中科院软件所、苏州大学等五家机构,联合发布藏经阁(知识引擎)…

45度做人 90度做事 180度为人 360度处事

面对社会复杂的关系和瞬时而变的人情世故,许多人会感叹活得太累。其实,只要我们保持平和的心态,不去计较人生的成败,始终保持一颗感恩的心,同样可以活得轻松自在,活出人生的精彩!以度量人的处事原则&#x…

SDK 和 API 的区别是什么

SDK 就是 Software Development Kit 的缩写,翻译过来——软件开发工具包。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。SDK被开发出来是为了减少程序员工作量的。比如——有公司…

解决413 Request Entity Too Large

解决413 Request Entity Too Large 修改nginx配置 这是最简单的一个做法,着报错原因是nginx不允许上传配置过大的文件,那么件把nginx的上传大小配置调高就好。1、打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位…

解决 springboot 启动报错 -- Cannot determine embedded database driver class for database type NONE

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 问题描述 我只是新建一个全新的 springboot 工程,什么都没有写的情况下启动报错如题: Cannot determine em…

Luogu P3731 [HAOI2017]新型城市化

题目显然可以转化为求每一条边对二分图最大独立集的贡献,二分图最大独立集\(\)点数\(-\)最大匹配数,我们就有了\(50pts\)做法。 正解的做法是在原图上跑\(Tarjan\),最开始我想复杂了,后来才意识到,只要存在这样一个强连…

【数据结构算法】快排/归并/堆排序 c++

一个用来了解数据结构算法(各种排序,列表,树等)很友好的网站: https://visualgo.net/en 该题目来自于牛客:算法篇-排序问题 快排(必备)归并(体会分治)堆(自…

人生的八种投资

1、最心甘情愿的投资:儿女 投资大师罗杰斯一生成功无数,问及他最得意的一次投资时,他说,是自己的女儿。“我曾经觉得养孩子是既麻烦又浪费钱的事情,有了女儿才知道,这才是最能给你带来幸福感的投资。” …

Linux操作系统load average过高,kworker占用较多cpu

Linux操作系统load average过高,kworker占用较多cpu 今天巡检发现,mc1的K8S服务器集群有些异常,负载不太均衡。其中10.2.75.32-34,49的load average值都在40以上,虽然机器的cpu核数都是40或48核不算严重,但…

[flask]gunicorn配置文件

配置文件 #!/home/xx/.virtualenvs/xx/bin/python # encoding: utf-8import multiprocessing# 监听端口 bind 0.0.0.0:5000 # 工作模式 worker_class gevent # 并行工作进程数 workers multiprocessing.cpu_count() * 1 # 设置守护进程 daemon True# 设置日志记录水平 logl…

Linux 上 docker 安装 oracle-xe-11g

环境: 2G 内存,60G 硬盘阿里云一台(带宽 1M), 配置如下图: 软件:docker Docker version 1.6.2, build 7c8fca2 相关 link docker 镜像站:https://store.docker.com 视频教程:ht…

最易忽视的肾虚4件事

肾是人的“先天之本”,如果把人体比喻成一棵大树,肾就是树根,吸收、传递营养充足,大树才能枝繁叶茂。肾虚了,可能引起各种健康问题。 然而,在现实中,人们常常会夸大肾虚,很多人把出…

【计算机网络】wireshark数据流追踪、图像抓取(转)

不废话了直接上地址 https://www.cnblogs.com/grj001/p/12223954.html

stm32学习方法

很多新手都问过嵌入式系统学习方法,好的学习方法可以事半功倍,学习嵌入式系统,掌握了好的学习方法,自然可以水到渠成。创客学院的老师就通过本篇文章就来说说嵌入式系统学习方法,新手必看 第一,学习基本的裸…

知识点漏缺总结

模块化 使用模块化可以给我们带来以下好处 解决命名冲突 提供复用性 提高代码可维护性 Proxy Proxy 来替换原本的 Object.defineProperty 来实现数据响应式。 Proxy 是 ES6 中新增的功能,它可以用来自定义对象中的操作。 let p new Proxy(target, handler) 复制代码…

成功投资的九大要诀

真正的有钱人对金钱持非常严肃的态度,即便是拿来投机也要小心睿智,物尽其用。这里的投机并不是指非理性的赌博,而是指为了追求更高收益而采取的市场投资行为。卡西研究所资深分析师Louis James总结了富豪们投机成功的9个秘诀。 秘诀1&#…

《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 以下全文内容出自书目&…

数据结构:静态链表实现树的同构

写在最前面 按照课程讲解的思路来写,逻辑关系能够理解清楚了,但是实际运行起来实在是有问题,虽然在PTA上能够通过。但是我自己看不出问题来,并且,看了一遍又一遍仍然看不出来!(可能自己太笨。。…

中国人为什么学不会英语

英语永远也学不会! 这种抱怨和哀叹,大概在中国早已经司空见惯了。于是,有人开始计算学英语是多么大的浪费。 作为过来人,我对此深有体会。记得我当年也有过类似的绝望感。 但是,一位前辈安慰我说:你可以说你永远掌…