动态对象

  • sys.argv 传递给程序的命令行参数列表,其中sys.argv[0]表示脚本名称

    1. import sys
    2. for i in range(len(sys.argv)):
    3. print('argv{0}:type is {1},value is {2}'.format(i,type(sys.argv[i]),sys.argv[i]))
  • sys.path 模块的搜索路径;sys.path[0]表示当前脚本所在目录

所有的模块import都从“根节点”开始。根节点的位置由sys.path中的路径决定,项目的根目录一般自动在sys.path中。如果希望程序能处处执行,需手动修改sys.path。

  1. import sys,os
  2. BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #存放当前.py所在的绝对路径
  3. sys.path.append(BASE_DIR)
  • sys.modules 已加载的模块的字典,可以像一般的字典一样进行各种字典操作。

    1. import sys
    2. sys.modules.keys()
    3. dict_keys(['sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', 'zipimport', '_frozen_importlib_external', '_io', 'marshal', 'posix', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_abc', 'site', 'os', 'stat', '_stat', 'posixpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', '_bootlocale', '_locale', 'types', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'itertools', 'reprlib', '_collections', 'functools', '_functools', 'virtualenvwrapper', 'readline', 'atexit', 'rlcompleter'])
  • sys.exc_info() 获取正在处理的异常的相关信息,返回值为一个包含异常类、异常实例和异常回溯信息的元组

    1. import sys
    2. s = 'abc'
    3. try:
    4. int(s)
    5. except ValueError:
    6. e = sys.exc_info()
    7. print(e)
    8. exc_type, exc_value, exc_traceback = e

    交互模式下使用的

  • sys.last_type 返回最近一次捕获的异常的类型

  • sys.last_value 返回最近一次捕获的异常的值
  • sys.last_traceback 返回最近一次捕获的异常的追踪信息

    静态对象

  • sys.builtin_module_names

  • sys.copyright
  • sys.exec_prefix
  • sys.executable
  • sys.float_info
  • sys.float_repr_style
  • sys.hash_info
  • sys.version_info
  • sys.maxsize
  • sys.maxunicode
  • sys.platform
  • sys.version
  • sys.byteorder
  • sys.api_version

    方法

  • sys.displayhook(p_object)

  • sys.execpthook(type,value,traceback)
  • sys.exit(n)
  • sys.getdefaultencoding()
  • sys.getsizeof()
  • sys.stdin
  • sys.stdout
  • sys.stderr