Python OS模块stdout\stdin\stderr
以python3为例
sys.stdout 与 print
当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n')
以下两行在事实上等价:
1 sys.stdout.write('hello'+'\n') 2 print(hello)
sys.stdout重定向到文件
1 1 #-*- coding:utf-8 -*- 2 2 3 3 import sys 4 4 from PyQt5.QtWidgets import QWidget 5 5 6 6 out = sys.stdout 7 7 print("out:%s",str(out)) 8 8 sys.stdout = open("Qwidget.txt","w") 9 9 10 10 print("outs:%s",sys.stdout)#已经重定向给了文件,所以输出到txt文件中 11 11 help(QWidget) 12 12 sys.stdout.close() #关闭文件重定向 13 13 sys.stdout = out #将系统初始值赋给stdout
sys.stdin 与 input
当我们用 input('Input promption: ') 时,事实上是先把提示信息输出,然后捕获输入,方法一方法二等效
1 hi=input("请输入打印方法1:")#python2 raw_input()方法 2 print("打印显示方法1:",hi) 3 4 print("请输入打印方法2:") 5 hi=sys.stdin.readline()[:-1] 6 #去掉末尾的换行符,可以用strip( )函数(sys.stdin.readline( ).strip('\n'))或sys.stdin.readline( )[:-1]这两种方法去掉换行 7 print("打印显示方法2:",hi)