该库主要是对python解释器进行操作
import sys
print(sys.argv) # 当前运行的程序本身
print(sys.version, sys.version_info) # 当前Python的版本
print(sys.copyright) # 当前解释器的版本信息
print(sys.path) # 当前解释器配置的环境变量
print(sys.platform) # 当前操作系统名称
print(sys.maxsize) # 最大int值2**31-1或2**63-1
print(sys.stdin.readline()) # 与input()方法类似,用于标准输入,其中input可以在()中添加描述
def stdout():
__console = sys.stdout # 用于重定向输出,可将print内容输出至指定的文件中
file = open('temp.txt', 'a+')
sys.stdout = file # 指定输出地址
print("this word will not print in console but in temp.txt") # 写入内容
sys.stdout = __console # 关闭指定输出位置
print("this word will still print in console") # 正常在控制台输出
stdout()
print("this is error log", file=sys.stderr) # 将内容以异常日志形式输出
print(sys.getdefaultencoding()) # 获取解释器当前编码格式
print(sys.getfilesystemencoding()) # 获取文件系统的编码格式
print(sys.modules) # 字典形式返回环境中已导入的所有模块
print(sys.builtin_module_names) # 返回一个元祖,显示已编译到解释器的模块
def exc_info(): # 构造一个异常方法
try:
temp = []
print(temp[1])
except:
print(sys.exc_info()) # 返回异常对象类型,异常原因,异常对象本身
exc_info()
print(sys.flags) # 用于修改标志类型,0,1
# flags: _flags
# class _flags:
# debug: int
# division_warning: int
# inspect: int
# interactive: int
# optimize: int
# dont_write_bytecode: int
# no_user_site: int
# no_site: int
# ignore_environment: int
# verbose: int
# bytes_warning: int
# quiet: int
# hash_randomization: int
# if sys.version_info >= (3, 7):
# dev_mode: int
# utf8_mode: int
print(sys.getrefcount(object)) # 返回对象的引用数量
print(sys.getrecursionlimit()) # 返回Python最大递归深度,默认1000
print(sys.getsizeof(object)) # 返回对象大小
print(sys.getswitchinterval()) # 返回线程切换间隔时间,默认0.005
sys.setswitchinterval(0.005) # 设置线程切换时间间隔,单位秒
print(sys.getwindowsversion()) # 展示当前windows版本信息
print(sys.hash_info) # 返回python默认的哈希方法参数
print(sys.implementation) # 返回解释器具体实现类型 cpython或其他的类型
print(sys.displayhook(object)) #将对象打印在公屏上,并将其作为内置函数
print(sys.excepthook) # 打印异常及其回溯到sys.stderr
print(sys.getprofile()) # 获取全局分析函数
print(sys.settrace(object)) # 设置全局调试跟踪功能,入参为方法函数
print(sys._getframe().f_code.co_filename) # 当前文件名,可以通过__file__获得
print(sys._getframe(0).f_code.co_name) # 当前函数名
print(sys._getframe(1).f_code.co_name) # 调用该函数的函数的名字,如果没有被调用,则返回<module>,貌似call stack的栈低
print(sys._getframe().f_lineno) # 当前行号