如何获取os.system函数返回的信息
write的返回值如何获取os.system(‘ipconfig/all’)返回的结果?
popen函数和system函数区别
popen() 创建⼀个管道,通过fork或者invoke⼀个⼦进程,然后执⾏command。返回值在标准IO流中,由于是在管道之中,因此数据流是单向的,command只能产⽣stdout或者读取stdin,因此type只有两个值:‘w’或‘r’。r表⽰command从管道中读取数据流,⽽w表⽰command的stdout输出到管道中。command⽆法同时读取和输出。popen返回该FIFO数据流的指针。
system()函数先fork⼀个⼦进程,在这个⼦进程中调⽤/bin/sh -c来执⾏command指定的命令。/bin/sh在系统中⼀般是个软链接,指向dash或者bash等常⽤的shell,-c选项是告诉shell从字符串command中读取要执⾏的命令(shell将扩展command中的任何特殊字符)。⽗进程则调⽤waitpid()函数来为变成僵⼫的⼦进程收⼫,获得其结束状态,然后将这个结束状态返回给system()函数的调⽤者。返回值: 0、1、-1等int的数字。
os.system(command)返回的信息
⽤os.system(‘ipconfig/all’))的时候只返回的是数字0,不是想要的信息。
想获取command返回的信息,需要使⽤os.popen(‘ipconfig/all’)。
import os
myfile = r'D:\信息.txt'
mycmd='ipconfig/all'
s ="".join(os.popen(mycmd).readlines())
print(s)
with open(myfile,'w')as f:
f.write(s)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。