系统工具-sys模块

平台与版本

>>> sys.platform
‘linux‘
>>> sys.maxsize
9223372036854775807
>>> sys.version
‘3.6.1 (default, Jul 12 2017, 09:58:07) \n[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

时间: 2024-08-07 21:19:56

系统工具-sys模块的相关文章

37 Python - 系统编程 sys模块应用

02 sys模块应用 001观察平台与版本信息 导入 查看平台名称/python版本 Sys.path——显示了一些目录环境,如解析器放在哪个路径下,主环境在哪里,pycharm的路径在哪里 002 观察异常信息 系统里面通过了可以捕获最近的一些异常信息 可以捕获当前程序最后抛出的异常 003 命令行参数 了解,具体内容自己参考其他资料 例子1:可以用argv打印命令行的参数 例子2:可以用argv接收命令行输入参数 004 标准流 仅仅了解 原文地址:https://www.cnblogs.c

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python(第四版阅读心得)(系统工具)(一)

本章将会讲解python常用系统工具的介绍 python中大多数系统级接口都集中在两个模块: sys 和 os 但仍有部分其他标准模块也属于这个领域 如: 常见: glob   用于文件名扩展 socket  用于网络连接和进程间通信 threading, _thread,queue  用于运行和同步化并发线程 time,timeit 用于获取系统时间相关细节 subprocess,multiprocessing 用于启动和控制并行进程 signal,select,shutil,tempfile

os和sys模块的区别

os与sys模块的官方解释如下: os: This module provides a portable way of using operating system dependent functionality.这个模块提供了一种方便的使用操作系统函数的方法.sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact

36 Python - 系统编程 系统工具

01系统工具 背景介绍,系统工具就是用于管理系统的工具.如window的命令行工具,linux下的shell脚本,Mac系统叫终端. Python中提供了模块可以直接操作各系统的系统工具,具体模块有很多,主要讲sys和os,其中os支持跨平台,且os.path提供文件及目录工具 原文地址:https://www.cnblogs.com/yijiexi/p/11165406.html

part10-1 Python常见模块(sys模块、os模块)

Python 有强大的第三方模块,这些第三方模块在实际运用中已经能实现很多的功能,通常不需要重复开发具有相同功能的模块.另外,Python 语言也内置了大量的模块,这些模块已经非常完善,例如对于常见的日期.时间.正则表达式.JSON支持.容器类等都有完善的模块.接下来学习 Python 内置的模块,不过这些模块还在不断的更新中,更详细的模块帮助可查看 Python 库的在线参考手册,https://docs.python.org/3/library/index.html. 一. sys 模块 s

【Python模块学习】sys模块

sys模块的操作如下: 1 sys.argv # 实现从程序外部向程序传递参数. 2 sys.exit([arg]) # 程序中间的退出,arg=0为正常退出. 3 sys.getdefaultencoding() # 获取系统当前编码,一般默认为ascii. 4 sys.setdefaultencoding() # 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时

Python学习总结12:sys模块

sys模块常用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互. 1. 导入及函数查看 >>> import sys #导入sys模块 >>> dir(sys) #dir()方法查看模块中可用的方法 注意:如果是在编辑器,一定要注意要事先声明代码的编码方式,否则中文会乱码. 2. 重要函数变量 sys.argv 命令行参数List,第一个元素是程序本身路径     sys.modules.keys() 返回所有已经导入的模块列表     sys

python模块之sys模块和序列化模块

sys模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 序列化模块 序列化的目的: 以某种存储形式使自定义对象持久化 将对象从一个地方传递到另一个地