社区
脚本语言
帖子详情
python popen 打开太慢
kokiahuang
2010-07-09 11:16:14
一个简单的'ls'命令,通过popen去执行,需要1.5s,通过os.system()执行,只需要0.014s。两者相差为什么这么大?
如果我需要捕获命令执行的标准输出和错误输出以及返回值,比如'ls'等,怎么做比较合适?
...全文
817
7
打赏
收藏
python popen 打开太慢
一个简单的'ls'命令,通过popen去执行,需要1.5s,通过os.system()执行,只需要0.014s。两者相差为什么这么大? 如果我需要捕获命令执行的标准输出和错误输出以及返回值,比如'ls'等,怎么做比较合适?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
苍蝇①号
2011-04-08
打赏
举报
回复
是不是库本身的问题不清楚,因为没有去分析过实现代码,但是操作系统对于目录的管理是提供了缓存的,如果第一次执行中你的文件没有在目录缓存中存在那么肯定就慢一些,第二次命中肯定是快一些的。我只想说操作系统的缓存功能也许也会出现两次速度不一致的问题
iambic
2011-04-08
打赏
举报
回复
行为艺术吧。人家都告诉你别用popen了,你还好意思说没答案?
kokiahuang
2011-04-08
打赏
举报
回复
好久了,还是没有答案,如何把这个帖子顶起来。
thy38
2010-07-10
打赏
举报
回复
用subprocess,别太在意速度
I_NBFA
2010-07-09
打赏
举报
回复
慢吗? 我这执行个dir命令很快.
ver. 2.6.5finall for win32
不过python的help里写着:
Deprecated since version 2.6: This function is obsolete. Use the subprocess module. Check especially the Replacing Older Functions with the subprocess Module section.
kokiahuang
2010-07-09
打赏
举报
回复
跟了一下python的代码,
c2pread, c2pwrite = os.pipe()
os.dup2(c2pwrite, 1)
发现在将stdout从定向到c2pwrite时很慢,但是
os.dup2(p2cread, 0)
os.dup2(errin, 2)
都很快,不知道为什么?
amu9900
2010-07-09
打赏
举报
回复
popen会有一个“写文件”的动作,捕获命令输出并返回一个包含输出信息的文件对象。
[638]
python
os.
popen
() 方法
概述 os.
popen
() 方法用于从一个命令
打开
一个管道。 在Unix,Windows中有效 语法
popen
()方法语法格式如下: os.
popen
(command[, mode[, bufsize]]) 参数 command – 使用的命令。 mode – 模式权限可以是 ‘r’(默认) 或 ‘w’。 bufsize – 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值...
使用
Python
的subprocess标准模块
Popen
()函数
打开
文件
subprocess模块是
Python
标准库中用于创建和管理子进程的标准模块。其中
Popen
()这个函数
Python
标准模块subprocess中的
Popen
()函数用处非常广泛,它用于创建新的进程,执行外部命令,并与它们交互。 本文着重介绍用这个函数如何
打开
文件这个方面。
python
os.
popen
阻塞_关于os.
popen
你可能不知道的
一前言使用
python
执行一些命令或调用第三方工具是比较常见的情况,实现的方法也很多,如os.system(),os.
popen
()、subprocess模块中的函数等等,本文主要介绍一下os.
popen
(),可能隐藏着你不曾接触的知识点,同时会结合实例进行说明,便于理解。二语法格式首先我们看下os.
popen
的语法格式,如下:os.
popen
(cmd, mode='r', buffering=-...
Python
3 中 subprocess.
Popen
与 os.
popen
的区别
os.
popen
os.
popen
是
Python
提供的一个用于启动外部进程并与其交互的函数。这个函数在
Python
2 中很常用,但在
Python
3 中已经被标记为过时。os.
popen
主要用于启动一个进程并返回一个文件对象,通过该文件对象可以读取进程的标准输出或写入标准输入。• command:要执行的命令字符串。• mode:文件
打开
模式,‘r’ 表示读取(默认),‘w’ 表示写入。• buffering:缓冲策略,通常设置为默认值 -1 即可。
c++调用
python
程序(使用
popen
)
之前写了一个
python
程序,基本功能是检测表计读数,然后输出。当时认为
python
写比较简单,而且正好在学习
python
,于是就写了......后来发现
python
打包成exe然后
打开
实在是
太慢
了,等待时间超长,而且exe文件很大,才发现
python
对程序发布很不友好,平时写些小程序也就罢了,真到正式场合有点...emmm掉链子,正好客户那边用的是c++,于是思考如何用c++调用
python
。第...
脚本语言
37,739
社区成员
34,211
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章