Python标准库中的sys你了解吗
来源:脚本之家    时间:2022-03-16 15:03:24
目录
sys作用常用变量sys.versionsys.maxsizesys.maxunicodesys.pathsys.platformsys.argvsys.executablesys.byteordersys.version_infosys.api_versionsys.stdin/sys.stdout/sys.stderr常用方法sys.exit()sys.modulessys.modules.keys()sys.getdefaultencoding()sys.getfilesystemencoding()sys.getrecursionlimit()sys.setrecursionlimit(num)sys.getsizeof()sys.getrefcount(obj)sys.exc_info()sys.getwindowsversion()sys.stdin.readline()sys.stdout.write()总结

sys作用

Python的sys模块提供访问由解释器使用或维护的变量的接口,并提供了一些函数用来和解释器进行交互,操控Python的运行时环境。

>>> import sys

常用变量

sys.version

返回Python解释器版本号;用于某程序需要用指定版本号运行

>>> import sys
>>> sys.version
3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)]

sys.maxsize

表示操作系统承载的最大int值

>>> import sys
>>> sys.maxsize
9223372036854775807

sys.maxunicode

给出最大Unicode代码点值的整数,即1114111(十六进制0x10FFFF)。

>>> import sys
>>> sys.maxunicode
1114111

sys.path

当前脚本的path环境变量,如果没有python就找到

>>> import sys
>>> sys.path
["", "D:\\Python3.8\\python38.zip", "D:\\Python3.8\\DLLs", "D:\\Python3.8\\lib", "D:\\Python3.8", "D:\\Python3.8\\lib\\site-packages"]

sys.platform

返回操作系统平台名称,在编写跨平台应用时很有用

系统返回值
Windows‘win32’
Linux‘linux’
Mac‘darwin’
>>> import sys
>>> sys.platform
win32

sys.argv

将python脚本运行时的脚本名以及参数作为一个list,并输出。实现从程序外部像程序内容传递参数

import sys

print(sys.argv)
E:\Python> python 2.py hello python
["2.py", "hello", "python"]

sys.executable

一个字符串,给出Python解释器的可执行二进制文件的绝对路径。如果Python无法检索其可执行文件的真实路径,sys.executable则将为空字符串或None。

>>> import sys
>>> sys.executable
"D:\\Python3.8\\python.exe"

sys.byteorder

本地字节顺序的指示符——在大端序(最高有效位优先)操作系统上值为 ‘big’ ,在小端序(最低有效位优先)操作系统上为 "little

>>> import sys
>>> sys.byteorder
"little"

sys.version_info

包含版本号的五个组件的元组:major,minor, micro,releaselevel和serial。

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=7, micro=3, releaselevel="final", serial=0)

sys.api_version

此解释器的C API版本。

>>> import sys
>>> sys.api_version
1013

sys.stdin/sys.stdout/sys.stderr

标准输入、输出、错误。

>>> import sys
>>> sys.stdin
<_io.TextIOWrapper name="" mode="r" encoding="utf-8">
>>> sys.stdout
<_io.TextIOWrapper name="" mode="w" encoding="utf-8">
>>> sys.stderr
<_io.TextIOWrapper name="" mode="w" encoding="utf-8">

常用方法

sys.exit()

退出程序,正常退出时exit(0)

import sys

print(sys.exit(0))
print(sys.exit(1))

sys.modules

返回系统导入的模块字段,key是模块名,value是模块

>>> import sys
>>> sys.modules
{"sys": , "builtins": , "_frozen_importlib": , "_imp": , "_warnings": , "_frozen_importlib_external": , "_io": , "marshal": , "nt": , "_thread": , "_weakref": , "winreg": , "time": , "zipimport": , "_codecs": , "codecs": , "encodings.aliases": , "encodings": , "encodings.utf_8": , "_codecs_cn": , "_multibytecodec": , "encodings.gbk": , "_signal": , "__main__": , "encodings.latin_1": , "_abc": , "abc": , "io": , "_stat": , "stat": , "_collections_abc": , "genericpath": , "ntpath": , "os.path": , "os": , "_sitebuiltins": , "_locale": , "_bootlocale": , "types": , "importlib._bootstrap": , "importlib._bootstrap_external": , "warnings": , "importlib": , "importlib.machinery": , "importlib.abc": , "_operator": , "operator": , "keyword": , "_heapq": , "heapq": , "itertools": , "reprlib": , "_collections": , "collections": , "_functools": , "functools": , "contextlib": , "importlib.util": , "mpl_toolkits": , "site": , "atexit": }

sys.modules.keys()

返回所有已导入的模块名列表

>>> import sys
>>> sys.modules.keys()
dict_keys(["sys", "builtins", "_frozen_importlib", "_imp", "_warnings", "_frozen_importlib_external", "_io", "marshal", "nt", "_thread", "_weakref", "winreg", "time", "zipimport", "_codecs", "codecs", "encodings.aliases", "encodings", "encodings.utf_8", "_codecs_cn", "_multibytecodec", "encodings.gbk", "_signal", "__main__", "encodings.latin_1", "_abc", "abc", "io", "_stat", "stat", "_collections_abc", "genericpath", "ntpath", "os.path", "os", "_sitebuiltins", "_locale", "_bootlocale", "types", "importlib._bootstrap", "importlib._bootstrap_external", "warnings", "importlib", "importlib.machinery", "importlib.abc", "_operator", "operator", "keyword", "_heapq", "heapq", "itertools", "reprlib", "_collections", "collections", "_functools", "functools", "contextlib", "importlib.util", "mpl_toolkits", "site", "atexit"])

sys.getdefaultencoding()

返回Unicode实现使用的当前默认字符串编码的名称。

>>> import sys
>>> sys.getdefaultencoding()
"utf-8"

sys.getfilesystemencoding()

返回用于在Unicode文件名和字节文件名之间进行转换的编码名称

>>> import sys
>>> sys.getfilesystemencoding()
utf-8

sys.getrecursionlimit()

返回最大递归次数

>>> import sys
>>> sys.getrecursionlimit()  # 查看当前解释器的最大递归深度
1000

sys.setrecursionlimit(num)

设置最大递归次数

>>> import sys
>>> sys.setrecursionlimit(1100)  # 将解释器的最大递归深度设置为1100
>>> sys.getrecursionlimit()  # 再次查看当前解释器的最大递归深度
1100

sys.getsizeof()

获取对象占用的内存大小(用字节表示)

>>> import sys
>>> for obj in [int(), float(), list(), tuple(), set(), dict(), object]:
...     print(str(obj.__class__).ljust(20), sys.getsizeof(obj))
...
        24
      24
       56
      40
        216
       232
       416

sys.getrefcount(obj)

返回obj的引用计数。返回的计数通常比预期的高一个,因为它包含(临时)引用作为参数。

>>> import sys
>>> a = [1,2,3]
>>> b = a
>>> c = b
>>> sys.getrefcount(a)
4

sys.exc_info()

获取当前正在处理的异常类,exc_typeexc_valueexc_traceback当前处理的异常详细信息

>>> import sys
>>> sys.exc_info()
(None, None, None)

sys.getwindowsversion()

获取Windows的版本,Windows系统中有效

>>> import sys
>>> sys.getwindowsversion()
sys.getwindowsversion(major=10, minor=0, build=19041, platform=2, service_pack="")

sys.stdin.readline()

从标准输入读一行,会读取末尾的换行符

sys.stdout.write()

向标准输出写入内容

>>> import sys
>>> sys.stdout.write("hello world")
hello world11

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

关键词: 操作系统 常用方法 标准输入 详细信息 运行时环境

X 关闭

X 关闭