zoukankan      html  css  js  c++  java
  • python 学习sys

    Python的系统模块包括:sys, os, glob, socket, threading, _thread, queue, time, timeit, subprocess, multiprocessing, signal, select, shutil, tempfile等。其中大多数系统级接口集中在:sys和os两个模块。

          sys模块包含:

    • 平台与版本的信息,如sys.platform, sys.maxsize, sys.version
    • 模块搜索路径sys.path
    • 模块表sys.modules,这是一个包含python程序中import进来的模块的name:module信息的字典
    • 异常信息,如sys.exc_info()
    • 命令行参数sys.argv
    • 标准流,如sys.stdin, sys.stdout, sys.stderr
    • 程序退出调用sys.exit

    sys模块主要是提供用来访问某些对象,这些对象包括被使用过或者被那些有着强大的互动解释能力的翻译器和方法维护过的对象。

    sys.argv

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    from sys import argv
    
    script, first, second, third = argv
    
    print "The script is called:", script
    print "Your first variable is:", first
    print "Your second variable is:", second
    print "Your third variable is:", third

    运行结果

    $ python ex13.py first 2nd 3rd
    The script is called: ex13.py
    Your first variable is: first
    Your second variable is: 2nd
    Your third variable is: 3rd

    sys.argv变量是一个字符串的 列表

    Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径

    sys.argv[]的官方解释

    sys.argv

    The list of command line arguments passed to a Python script. argv[0] is the script name (it is operating system dependent whether this is a full pathname or not). If the command was executed using the -c command line option to the interpreter, argv[0] is set to the string '-c'. If no script name was passed to the Python interpreter, argv[0] is the empty string.

    To loop over the standard input, or the list of files given on the command line, see the fileinput module.

    sys.path

    path 列表是一个由目录名构成的列表, Python 从中查找扩展模块( Python 源 模块, 编译模块,或者二进制扩展). 启动 Python 时,这个列表从根据内建规则, PYTHONPATH 环境变量的内容, 以及注册表( Windows 系统)等进行初始化. 由 于它只是一个普通的列表, 你可以在程序中对它进行操作   

    path[0]是当前目录

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import sys
    
    for l in sys.path:
        print l

    运行结果

    /Users/goodspeed/Documents/Code/python/learnPythonHW/mystuff
    /Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg
    /usr/local/lib/wxPython-2.9.3.1/lib/python2.7/site-packages
    /usr/local/lib/wxPython-2.9.3.1/lib/python2.7/site-packages/wx-2.9.3-osx_cocoa
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
    /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
    /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
    /Library/Python/2.7/site-packages
    /usr/local/lib/wxPython-2.9.3.1/lib/python2.7

    sys.builtin_module_names

    sys.builtin_module_names

    A tuple of strings giving the names of all modules that are compiled into this Python interpreter. (This information is not available in any other way — modules.keys() only lists the imported modules.)

    内建模块 是一个元组 包含内容为

    ('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', '_weakref', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')

    sys 模块查找已导入的模块

    import sys
    print sys.modules.keys()
    ['os.path', 'os', 'exceptions', '_ _main_ _', 'ntpath', 'strop', 'nt', 'sys', '_ _builtin_ _', 'site', 'signal', 'UserDict', 'string', 'stat']

     

     

     

     

     未完待续....

    sys 参考文档 http://docs.python.org/library/sys.html

  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/cacique/p/2623675.html
Copyright © 2011-2022 走看看