zoukankan      html  css  js  c++  java
  • 系统工具-sys模块

    平台与版本

    >>> sys.platform
    'linux'
    >>> sys.maxsize
    9223372036854775807
    >>> sys.version
    '3.6.1 (default, Jul 12 2017, 09:58:07) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]'
    >>> import sys
    >>> sys.platform   # 底层操作系统名称
    'win32'
    >>> sys.maxsize    # 当前计算机上可容纳的最大的“原生”整型
    9223372036854775807
    >>> sys.version    # Python解释器的版本号
    '3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]'

    模块搜索路径

    sys.path 是一个由目录名称字符串组成的列表,每个目录名称字符串代表正在运行的Python 解释器真正的搜索路径。模块导入时,Python会从左向右扫描列表,在列表中的每个目录下搜索模块文件。

    sys.path 列表在解释器启动时根据PYTHONPATH设置进行初始化,电脑中Python目录下的所有.pth 路径文件的内容,以及系统默认设置。

    >>> sys.path
    ['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', ...more deleted...]

    另外,sys.path 也可以用程序进行更改。脚本可以借助多种列表操作来设置搜索路径,比如 append、extend、insert、pop、remove 和del,以便把所需的源目录全部包括进来。无论如何更改,Python在导入时总是使用当前sys.path设置:

    >>> sys.path
    ['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
    >>> sys.path.append('/root')
    >>> sys.path
    ['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages', '/root']

    对sys.path 的更改只维持到Python 进程结束时,下次重启时,需要重新设定。

    Windows在 DOS目录下,目录路径字符串中使用双反斜杠(如在"C:\dir"中,\ 是表示 的转义符),或者使用原始字符串字面量来保留反斜杠的字面意义(如 r"C:dir")

    已加载模块表

    sys 模块还包含嵌入解释器的钩子。 例如, sys.modules是一个字典,你的Python会话或程序所导入的每个模块在其中都有一个name:module项:

    >>> sys.modules
    {'builtins': <module 'builtins' (built-in)>, ...more deleted...}
    
    >>> list(sys.modules.keys())  
    ['builtins', 'sys', '_frozen_importlib', ...]
    
    >>> sys
    <module 'sys' (built-in)>
    >>> sys.modules['sys']
    <module 'sys' (built-in)>

    另外,借助解释器的钩子,可以通过 sys.getrefcount 来查看对象的引用次数,而Python 的内置模块名称可执行 sys.builtin_module_names 列出:

    >>> sys.getrefcount(sys)
    49
    >>> sys.builtin_module_names
    ('_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')

    sys模块导出的其他工具

    sys.argv  : 显示为由字符串组成的列表的命令行参数

    sys.stdin、sys.stdout和sys.stderr: 标准流

    sys.exit:通过调用可强制退出

    详细介绍请参考:https://docs.python.org/3/library/sys.html?highlight=sys#module-sys

  • 相关阅读:
    shell 命令参数
    Windows系统配置Python环境,python2和python3共存
    jmeter面试题及答案
    接口测试
    python语法基础
    pycharm环境安装及注册
    Win10下python 2.7与python 3.6双环境安装图文教程
    eclipse中导入maven项目时pom文件报错
    ssm-crud项目--总结
    ssm-crud项目——分页查询
  • 原文地址:https://www.cnblogs.com/chengtai/p/7363397.html
Copyright © 2011-2022 走看看