标签:close 调用 内容 stdout out pop cto span /tmp
注:以下使用 os 模块来调用外部命令,但已经不建议使用该模块,通常我们都是用 subpross 模块
os.system() :命令的结果输出在终端上,捕获不到
In [1]: import os In [2]: os.system(‘ls /tmp/‘) 12.txt 1.txt 2.txt 3.txt test1 test2 # 这里的结果输出到终端 Out[2]: 0 # 这里返回命令执行后的状态码
os.popen() :返回1个对象,即标准输出
In [4]: out = os.popen(‘ls /tmp/‘) # 通过变量来接收标准输出 In [5]: out.read() # 可以用read()、readline()、readlines()等方法查看 Out[5]: ‘12.txt\n1.txt\n2.txt\n3.txt\ntest1\ntest2\n‘
os.popen2() :返回2个对象,分别是标准输入、标准输出
In [3]: stdin, stdout = os.popen2(‘ls /tmp/‘) # 我们用 stdin 来接收标准输入,用 stdout 来接收标准输出 In [4]: stdout.read() # 可以通过 read() 方法来查看标准输出 Out[4]: ‘12.txt\n1.txt\n2.txt\n3.txt\ntest1\ntest2\n‘ In [5]: stdin.write(‘hello‘) # 也可以用 write() 方法来写入到标准输入 In [6]: stdin.close() # close()之后才能保存写入的内容
os.popen3() :返回3个对象,分别是标准输入、标准输出、标准错误输出
In [7]: stdin, stdout, stderr = os.popen3(‘ls /tmp/aaa‘) In [9]: stderr.read() # 查看标准错误输出 Out[9]: ‘ls: cannot access /tmp/aaa: No such file or directory\n‘
标签:close 调用 内容 stdout out pop cto span /tmp
原文地址:http://www.cnblogs.com/pzk7788/p/7752912.html