python常用模块——sys

时间:2022-07-30 23:43:47

sys模块

常用的方法:

1. sys.argv

    命令行参数List,第一个元素是程序本身路径

2. sys.exit(n)

    退出程序,指定返回状态码n,正常退出时exit(0)

3. sys.version

    获取Python解释程序的版本信息

4. sys.path

    返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值;它是一个列表,故拥有列表的方法;

5. sys.platform

    返回操作系统平台名称

6. sys.exec_prefix

    查找当前python的安装目录,并返回绝对路径

7. sys.executable

    查找当前python的解释器程序,并返回绝对路径

8. getsizeof(...)

    getsizeof(object, default) -> int 以字节(b)为单位返回对象的大小。1B=8b

9. sys.stdout.write('please:')

    和print差不多;但是这个会统计字符个数;字母、数字、特殊符号、汉字都是算一个;
    比如:
    import sys
    val = sys.stdout.write('please:')   
    print(val)                          # 在同一行输出 please:7     因为没有\n换行,所有打印在了一行;

10. sys.stdin.readline()

    读取输入的内容,直到换行或者遇到EOF;如果没有输入,直接EOF,则返回一个空字符串;
    例如:
    import sys
    val = sys.stdin.readline()    # 执行到这里,会等待交互式输入内容,并赋值给val;
    print(val)             

更多方法: https://docs.python.org/3/library/sys.html

动态信息:

sys.argv

返回一个列表;argv[0]是脚本本身(如果执行时带有路径则包含路径),argv[1]是第一个参数......

sys.path

模块搜索路径;path[0]是当前脚本所在的路径;

sys.modules

装载的模块的一个字典;

sys.displayhook()

调用以在交互会话中显示结果;用法再补充吧;

sys.excepthook()

处理异常会用到。用法再补充吧;

sys.stdin

打印标准输入的属性;

sys.stdout

打印标准输出的属性;

sys.stderr

打印标准错误的属性;

静态信息:

sys.builtinmodulenames

以元组形式返回内置模块名称;

sys.copyright

打印copyright信息;没用;

sys.exec_prefix

查找当前python的安装目录,并返回绝对路径

sys.executable

查找当前python的解释器程序,并返回绝对路径

sys.float_info

打印浮点类型有关信息

sys.floatreprstyle

以后补充吧;

sys.hash_info

打印哈希类型有关信息

sys.hexversion

打印单个整数的编码信息

sys.implementation

打印python实现的信息

sys.int_info

打印整型的信息;

sys.maxsize

打印容器支持的最大的长度;

sys.maxunicode

unicode编码的最大值

sys.platform

打印平台信息,如linux、win32等

sys.prefix

打印当前python的安装目录;打印出绝对路径;

sys.thread_info

打印线程实现的信息;

sys.version

打印python解释器的具体版本;

sys.version_info

以元组形式打印python解释器的版本;

sys.dllhandle

打印python dll的句柄;

sys.winver

打印python 库的版本

方法:

call_tracing(...)

call_tracing(func, args) -> object
调用函数,并启用追踪;用法再补充;

callstats(...)

callstats() -> tuple of integers
如果定义了call_profile,当Python被构建时,返回一个元组的函数调用统计。否则,没有返回。返回元组的内容详见官方;

displayhook(...)

displayhook(object) -> None
打印一个对象并将它保存在内置sys.stdout。用法再补充;

exc_info(...)

exc_info() -> (type, value, traceback)
返回最近捕获的异常的信息。

excepthook(...)

excepthook(exctype, value, traceback) -> None
通过显示它在sys.stderr回溯处理异常

exit(...)

exit([status])
指定退出状态;如果没有指定,则退出0表示成功;退出1表示失败;如果指定了整数,则退出为该整数;如果指定了对象,则打印该对象;

getasyncgenhooks(...)

get_asyncgen_hooks()
再补充吧;

getcoroutinewrapper(...)

get_coroutine_wrapper()
这个也再补充吧

getallocatedblocks(...)

getallocatedblocks() -> integer
返回当前分配的内存块数,而不管它们的大小。

getcheckinterval(...)

getcheckinterval() -> current check interval; see setcheckinterval().
sys.getcheckinterval    sys.setcheckinterval   线程切换前python指令执行条数(GIL) 

getdefaultencoding(...)

getdefaultencoding() -> string
获取当前默认的字符串编码;

getfilesystemencodeerrors(...)

getfilesystemencodeerrors() -> string
返回用于转换Unicode文件名的操作系统文件的错误模式。

getfilesystemencoding(...)

getfilesystemencoding() -> string
返回使用的编码转换成Unicode文件名的操作系统文件名。

getprofile(...)

getprofile()
根据sys.setprofile返回分析函数集。

getrecursionlimit(...)

getrecursionlimit()
返回递归限制的当前值,即Python解释器堆栈的最大深度。此限制防止无限递归导致C堆栈溢出和崩溃的Python。

getrefcount(...)

getrefcount(object) -> integer
返回对象的引用计数。

getsizeof(...)

getsizeof(object, default) -> int
以字节(b)为单位返回对象的大小。1B=8b

getswitchinterval(...)

getswitchinterval() -> current thread switch interval; see setswitchinterval().

gettrace(...)

gettrace()
根据sys.settrace返回全局调试跟踪功能设置。

getwindowsversion(...)

getwindowsversion()
获取当前windows版本信息;仅在windows下使用。

intern(...)

intern(string) -> string
以后补充;

is_finalizing(...)

is_finalizing()
如果python退出,则返回True.

setasyncgenhooks(...)

set_asyncgen_hooks(*, firstiter=None, finalizer=None)
设置一个异步生成器的对象

setcoroutinewrapper(...)

set_coroutine_wrapper(wrapper)
设置一个协同对象包装。

setcheckinterval(...)

setcheckinterval(n)
告诉Python解释器每n个指令检查异步事件。这也会影响线程切换的频繁发生。

setprofile(...)

setprofile(function)
设置剖析功能。它将在每个函数调用和返回时调用。

setrecursionlimit(...)

setrecursionlimit(n)
将Python解释器堆栈的最大深度设置为n。这个限制防止无限递归导致C堆栈溢出和崩溃Python。最大可能的限制是依赖于平台的。

setswitchinterval(...)

setswitchinterval(n)
在Python解释器中设置理想的线程切换延迟,如果解释器执行长的不间断代码序列(这是特定于实现的和工作量相关的),那么交换线程的实际频率可能会更低。
参数必须在秒内代表期望的开关延迟,典型值是0.005(5毫秒)。

settrace(...)

settrace(function)
设置全局调试跟踪功能。它将在每个函数调用时被调用。