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

  • 相关阅读:
    【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入
    【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题
    【2018.04.19 ROS机器人操作系统】机器人控制:运动规划、路径规划及轨迹规划简介之一
    March 11th, 2018 Week 11th Sunday
    March 10th, 2018 Week 10th Saturday
    March 09th, 2018 Week 10th Friday
    March 08th, 2018 Week 10th Thursday
    March 07th, 2018 Week 10th Wednesday
    ubantu之Git使用
    AMS分析 -- 启动过程
  • 原文地址:https://www.cnblogs.com/chengtai/p/7363397.html
Copyright © 2011-2022 走看看