sys模块是与python解释器交互的一个接口。
import sys
常见用法:
- sys.argv:命令行参数List,第一个元素是程序本身路径
- sys.modules.keys(): 返回所有已经导入的模块列表
- sys.exc_info():获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
- sys.exit(n) :退出程序,正常退出时exit(0)
- sys.hexversion :获取Python解释程序的版本值,16进制格式如:0x020403F0
- sys.version :获取Python解释程序的版本信息
- sys.maxint : 最大的Int值
- sys.maxunicode:最大的Unicode值
- sys.modules :返回系统导入的模块字段,key是模块名,value是模块
- sys.path :返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
- sys.platform :返回操作系统平台名称
- sys.stdout : 标准输出
- sys.stdin :标准输入
- sys.stderr : 错误输出
- sys.exc_clear() :用来清除当前线程所出现的当前的或最近的错误信息
- sys.exec_prefix :返回平台独立的python文件安装的位置
- sys.byteorder :本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
- sys.copyright : 记录python版权相关的东西
- sys.api_version :解释器的C的API版本
- sys.displayhook(value) :如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._.指在python的交互式解释器里,'_' 代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来
- sys.getdefaultencoding() :返回当前你所用的默认的字符编码格式
- sys.getfilesystemencoding() :返回将Unicode文件名转换成系统文件名的编码的名字
- sys.setdefaultencoding(name):用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出 LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除
- sys.builtin_module_names :Python解释器导入的模块列表
- sys.executable :Python解释程序路径
- sys.getwindowsversion():获取Windows的版本
- sys.stdin.readline() :从标准输入读一行,sys.stdout.write("a") 屏幕输出a
sys模块的常用函数:
- sys.argv:命令行参数列表,第一个元素是脚本的名称,可以在执行整个程序前通过终端传入参数,然后执行程序。
print( sys.argv ) #返回列表,第一个元素是文件名,后面是终端传入的值
command = sys.argv[1]
if command == "post":
print("即将进行上传")
elif command == "get":
print("即将进行下载")
上述代码写入“sys模块.py”文件后,再在终端中运行程序,结果如下图:
- sys.path:返回模块的搜索路径的列表。可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
也可以使用“sys.path.append(path)”添加模块搜索路径。
- sys.exit(n):退出解释器,n=0为正常退出。
一般情况下执行到主程序末尾,解释器自动退出。但是如果需要中途退出程序,可以调用sys.exit函数。0是正常退出,其他为异常退出。
注意:exit()运用在交互式shell中,而sys.exit主要用于程序中,二者功能类似。
- sys.version:获取Python解释程序的版本信息
- sys.platform:返回操作系统平台名称
- sys.stdin/sys.stdout:标准输入/标准输出。如果需要更好地控制输出,而print不能满足你的要求,可以使用它们。
# 制作简易进度条
import time
for i in range(50):
sys.stdout.write("*") #打印*号,类似于print,但是默认不换行
time.sleep(0.1)
sys.stdout.flush() #刷新,显示到屏幕上。