python 怎么启动一个外部命令程序, 并且不阻塞当前进程
http://www.myexception.cn/perl-python/1278887.html
http://blog.chinaunix.net/uid-25979788-id-3081912.html
python 如何启动一个外部命令程序, 并且不阻塞当前进程
在python中如何运行外部命令,并且调用后立即返回,不阻塞当前的进程。
调用 os.system函数时, python程序会被阻塞住, 直到外部命令结束。
比如我通过os.system('notepad'),运行记事本,除非我关闭记事本,不然python程序会一直阻塞,
有哪些方法能够不阻塞的运行外面命令吗?
------解决方案--------------------
subprocess.Popen
os.startfile
import os
os.system(r'"D:\Program Files\Foxit Software\Foxit reader.exe" abc.pdf')
偶想""是不可缺少的,因为路径中有空格,否则极容易出错;对-参数不了解,不发表意见
使用os.system会有几个问题:
1、os.system会阻塞程序继续运行(如果是图形界面,还会把图形界面搞的没反应),当然如果需要阻塞,自然不是问题。
2、os.system会打开一个命令行窗口,这是比较讨厌的;除非你确实需要显示这个命令行窗口或者本来就是命令行里运行的。
所以还是建议使用 os.popen,基本语法是一样的
import os
os.popen(r'"D:\Program Files\Foxit Software\Foxit reader.exe" abc.pdf')
这样不会出现命令行窗口,不会阻塞程序运行
如果需要阻塞程序运行,可以这样写:
os.popen(r'"D:\Program Files\Foxit Software\Foxit reader.exe" abc.pdf').read()
最新文章
- SwitchHosts—hosts管理利器
- C#入门随手笔记
- Java文件读写操作指定编码方式防乱码
- 3月20,html
- IOS socket开发基础
- 经典代码-C宏 #转字符串【瓦特芯 笔记】
- redis基础-前篇
- PHP的五种常见设计模式
- Firemonkey 自定义Button的Style
- 【java设计模式】之 建造者(Builder)模式
- Android APP 性能优化的一些思考
- QinQ 简介
- 【LeetCode每天一题】Merge Intervals(合并区间)
- opencv 傅里叶使用
- python程序保存成二进制(不公开源码)
- 第11月第8天 ffmpeg ffplay
- Linked List Cycle leetcode java (链表检测环)
- Ununtu 15.04 安装MySql(Django连接Mysql)
- 计算机网络——OSI、TCP/IP协议族详解
- json_encode和json_decode和isset和array_key_exists
热门文章
- mybatis 批量操作增删改查
- RuntimeError: Failed to init API, possibly an invalid tessdata path: E:\python36\报错
- css实现盒尺寸重置、均匀分布的子元素、截断文本
- 如何把握好 transition 和 animation 的时序,创作描边按钮特效
- 编写testplan
- 使用VMware克隆出来的新虚拟机无法联网-问题解决记录
- leetcode-2-basic
- stm32开发套件选择——LL SPL HAL Snippets的应用范围
- Java-在JVM关闭前调用的函数
- python 配置opencv-python 接口