如何获得system标准输出? --再问: 如何将stderr 重定向到stdout?

如何获得system标准输出? --再问: 如何将stderr 重定向到stdout?

如os.system('ping 192.168.1.1')的输出?

谢谢



[Copy to clipboard] [ - ]
CODE:
ping = os.popen('ping [url]www.google.com[/url]')
for p in ping:
        print p

# output:
################################################
Pinging [url]www.l.google.com[/url] [72.14.205.104] with 32 bytes of data:

Reply from 72.14.205.104: bytes=32 time=23ms TTL=245
Reply from 72.14.205.104: bytes=32 time=23ms TTL=245
Reply from 72.14.205.104: bytes=32 time=22ms TTL=245
Reply from 72.14.205.104: bytes=32 time=21ms TTL=245

Ping statistics for 72.14.205.104:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 21ms, Maximum = 23ms, Average = 22ms

thanx
why can't I use:
   for i in ping.readline() ??

thanx
因为ping只是一个字符串,不是一个类file的对象。
it seems 'ping' here is a file type
什么输出都没有?为什么?


import os
ping = os.popen('ping www.google.com')
for i in ping:
    print i
那可以使用dir(ping)看一下它都有哪里方法
再问: 如何将stderr 重定向到stdout?
一种是在命令行下做,另一种是将sys.stderr = sys.stdout,试一下。