社区
脚本语言
帖子详情
请问python里的os.popen3(cmd)能接受多长的返回值?
wangliangkai
2010-09-10 04:38:53
1、在python里的 stdin, stdout, stderr = os.popen3(cmd) 的 os.popen3(cmd) 能接受多长的返回值,在开发中发现超过4000的长度就无法接收返回值,有其他更好的方法能接收更长字符串的返回值吗?
注: cmd 是linux命令,可返回一个超过4000字符长度的字符串返回值。
...全文
678
8
打赏
收藏
请问python里的os.popen3(cmd)能接受多长的返回值?
1、在python里的 stdin, stdout, stderr = os.popen3(cmd) 的 os.popen3(cmd) 能接受多长的返回值,在开发中发现超过4000的长度就无法接收返回值,有其他更好的方法能接收更长字符串的返回值吗? 注: cmd 是linux命令,可返回一个超过4000字符长度的字符串返回值。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
angel_su
2010-09-17
打赏
举报
回复
有多大?报啥错?
如果确是太大问题,一开始stdout=subprocess.PIPE改一下,换成定向到一个文件,解析时一行行或读入一定大小下循环处理...
angel_su
2010-09-17
打赏
举报
回复
4500很小很小的说,问题应该在其他地方...
wangliangkai
2010-09-17
打赏
举报
回复
字符集最长时是4500个字符,执行到“re.search(r"Status code = (?P<status_code>-?\d+)", stdout)” 时不报错,就是挂起一直没返回。
wangliangkai
2010-09-16
打赏
举报
回复
这个可以调用接收返回超过4000字符, 不过还出现一个问题在用 re.search获取解析字符时stdout 超长,有没有其他方法处理这个re.search 查询的字符串超长问题。
p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
(stdout,stderr) = p.communicate()
re.search(r"Status code = (?P<status_code>-?\d+)", stdout)
谢谢!
wangliangkai
2010-09-13
打赏
举报
回复
buffer加大到了:1024*1024*1024 还是不行。
angel_su
2010-09-13
打赏
举报
回复
没效果的话估计大小就是系统默认的不能改,只是在设置buffer/unbuffer模式。
试试subprocess模块吧,用communicat()方法把缓冲读掉,不然程序输出塞饱stdout就卡住了...
iambic
2010-09-10
打赏
举报
回复
不太可能有这个限制吧……
angel_su
2010-09-10
打赏
举报
回复
os.popen3(cmd[, mode[, bufsize]]) 加大buffer试试。另外,这个函数已列为弃用,看看有关subprocess模块...
【
python
】
os
.system() &
os
.
popen
() 在
python
执行
cmd
指令
而是一个16位的数,它的高位才是返回码。使用
os
.system
返回值
是脚本的退出状态码,该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码。
os
.system()
返回值
为256,十六位二进制数示为:00000001,00000000,高八位转成十进制为 1 对应 linux命令
返回值
1。通过
os
.
popen
() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。一般来说,返回 0 表示运行成功。
浅谈
Python
3中subprocess.
Popen
与
os
.
popen
的区别
之前遇到一个使用
os
.
popen
时想屏蔽控制台的stderr打印的问题,在研究这个问题的时候,对
os
.
popen
稍微打卡看了下,发现
popen
其实只是对subprocess.
Popen
的封装,先把源码粘出来: def
popen
(
cmd
, mode="r", buffering=-1): if not isinstance(
cmd
, str): raise TypeEr...
python
-执行
cmd
指令(
os
.system和
os
.
popen
)
转载自:悠悠博客园
os
.system 1.如果想在
cmd
执行
python
脚本,可以直接用如下指令
python
[xx.py绝对路径] 比如我写了个hello.py的脚本,在脚本
里
面写入内容:print(“hello world!”),放到d盘目录路径为:d:\hello.py 2.
os
.system用来执行
cmd
指令,在
cmd
输出的内容会直接在控制台输出,返回结果为0表示执行...
Python
os
.system执行多条语句,
os
.system的
返回值
以及与
os
.
popen
的区别
OS
模块:Operating System 操作系统模块 以下内容转自 https://blog.csdn.net/fengqingting2/article/details/41940149 https://blog.csdn.net/windone0109/article/details/8895875 https://blog.csdn.net/zgl07/article/det...
Python
调用
cmd
Python
经常需要用作系统脚本,调用
cmd
或者shell能够大大提高工作效率。 1.
os
.system 使用
os
.system是最简单直观的调用方法: import
os
cmd
= 'ls'
os
.system(
cmd
) 这个方法虽然简单,但有一个极大的缺点,无法获得
cmd
命令的输出。很难做进一步操作。对于'mv','cp'这种没有输出的命令行,可以首先推荐使用这个方法。而对于'l...
脚本语言
37,738
社区成员
34,210
社区内容
发帖
与我相关
我的任务
脚本语言
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写文章