Python~sys模块总结
1.sys.argv:实现从程序外部向程序内部传递参数
import sys
print (sys.argv) print ("取第一个值为:",end="") print (sys.argv[0]) |
2.sys.exit():退出程序运行
import sys
for i in range(5): print (i) if i==2: "当i符合条件时,结束程序运行" sys.exit() |
3.sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到
>>> import sys >>> sys.path ['', 'E:\\', 'C:\\Users\\zhigang\\Desktop', 'D:\\Python3\\python36.zip', 'D:\\Python3\\DLLs', 'D:\\Python3\\lib', 'D:\\Python3', 'D:\\Python3\\lib\\site-packages']
sys.path.append("自定义模块路径") |
4.sys.platform:获取当前系统平台
>>> import sys >>> sys.platform 'win32' |
5.sys.getfilesystemencoding():获取文件系统使用编码方式
>>> sys.getfilesystemencoding() 'utf-8' |
6.sys.getdefaultencoding(): 获取系统当前编码
>>> sys.getdefaultencoding() 'utf-8' |
7.sys.setdefaultencoding():设置系统默认编码
py2中的用法: import sys
print (sys.getdefaultencoding()) reload(sys) sys.setdefaultencoding("gbk") print (sys.getdefaultencoding())
py3运行以上代码会报错: 解决办法: import sys,importlib print (sys.getdefaultencoding()) importlib.reload(sys) 但py3中已遗弃sys.setdefaultencoding(),仍会报错: |
8.sys.stdin,sys.stdout,sys.stderr
sys.stdin:标准化输入,等同于input
使用sys.stdin.readline()可以实现标准输入,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换
import sys
content=sys.stdin.readline() print (content) |
sys.stdout和sys.stderr:标准输出和标准错误输出,同print等价
import sys
sys.stdout.write("hello world!") sys.stderr.write("hello world!") #再pycharm中显示为红色字体 |
9.重定向到文件
import sys
fp=open("test.txt","w") sys.stdout=fp print ("光荣之路") |
10.同时重定向到控制台和文件
import sys
class Redirection(object):
def __init__(self, content): self.content = content self.console=sys.stdout
def to_console(self): "标准输出重定向至控制台" sys.stdout=self.console print (self.content)
def to_file(self,file_path="out.txt"): "标准输出重定向至文件" fp = open(file_path, "w") sys.stdout = fp print(self.content)
if __name__=="__main__": content="光荣之路" rs=Redirection(content) rs.to_console() rs.to_file() |