zoukankan      html  css  js  c++  java
  • python之SYS

    sys模块

    sys.argv           命令行参数List,第一个元素是程序本身路径
    sys.exit(n)        退出程序,正常退出时exit(0)
    sys.version        获取Python解释程序的版本信息
    sys.maxint         最大的Int值
    sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform       返回操作系统平台名称
    sys.stdout.write('please:')
    val = sys.stdin.readline()[:-1]
    

     

    sys.argv: 实现从程序外部向程序传递参数。
    
    sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
    
    sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
    
    sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
    
    sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
    
    sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
    
    sys.platform: 获取当前系统平台。
    
    sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
    

      

    sys.argv

    功能:在外部向程序内部传递参数
    示例:sys.py

    import sys
    print( sys.argv[0])
    print(sys.argv[1])

    运行:

    # python sys.py argv1
    sys.py
    argv1

    自己动手尝试一下,领悟参数对应关系

    sys.exit(n)

    功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

    示例:exit.py

    #!/usr/bin/env python
    
    import sys
    
    def exitfunc(value):
        print value
        sys.exit(0)
    
    print ("hello")
    
    try:
        sys.exit(1)
    except SystemExit,value:
        exitfunc(value)
    
    print ("come?")

    运行:

    # python exit.py
    hello
    1

    sys.path

    功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

    示例:

    Microsoft Windows [版本 6.1.7601]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
    
    F:python从入门到放弃7.12>python
    Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
     on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.path
    ['', 'D:\Program Files (x86)\python36\python36.zip', 'D:\Program Files (x86)
    \python36\DLLs', 'D:\Program Files (x86)\python36\lib', 'D:\Program Files
    (x86)\python36', 'D:\Program Files (x86)\python36\lib\site-packages']
    >>>

    sys.path.append("自定义模块路径")

    sys.modules

    功能:sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

    示例:modules.py

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 import sys
    4 print(sys.modules.keys())

    result

    "D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
    dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize'])
    
    Process finished with exit code 0

    for example

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 import sys
    4 import time
    5 print(sys.modules.keys())

    results:

    "D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
    dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize', 'time'])
    
    Process finished with exit code 0

     

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 import sys
    4 import time
    5 print(sys.modules.keys())
    6 print(sys.modules.values())
    7 print(sys.modules['time'])

    result:

    "D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
    dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize', 'time'])
    dict_values([<module 'builtins' (built-in)>, <module 'sys' (built-in)>, <module '_frozen_importlib' (frozen)>, <module '_imp' (built-in)>, <module '_warnings' (built-in)>, <module '_thread' (built-in)>, <module '_weakref' (built-in)>, <module '_frozen_importlib_external' (frozen)>, <module 'io' (built-in)>, <module 'marshal' (built-in)>, <module 'nt' (built-in)>, <module 'winreg' (built-in)>, <module 'zipimport' (built-in)>, <module 'encodings' from 'D:\Program Files (x86)\python36\lib\encodings\__init__.py'>, <module 'codecs' from 'D:\Program Files (x86)\python36\lib\codecs.py'>, <module '_codecs' (built-in)>, <module 'encodings.aliases' from 'D:\Program Files (x86)\python36\lib\encodings\aliases.py'>, <module 'encodings.utf_8' from 'D:\Program Files (x86)\python36\lib\encodings\utf_8.py'>, <module '_signal' (built-in)>, <module '__main__' from 'F:/python从入门到放弃/7.12/sys_module.py'>, <module 'encodings.latin_1' from 'D:\Program Files (x86)\python36\lib\encodings\latin_1.py'>, <module 'io' from 'D:\Program Files (x86)\python36\lib\io.py'>, <module 'abc' from 'D:\Program Files (x86)\python36\lib\abc.py'>, <module '_weakrefset' from 'D:\Program Files (x86)\python36\lib\_weakrefset.py'>, <module 'site' from 'D:\Program Files (x86)\python36\lib\site.py'>, <module 'os' from 'D:\Program Files (x86)\python36\lib\os.py'>, <module 'errno' (built-in)>, <module 'stat' from 'D:\Program Files (x86)\python36\lib\stat.py'>, <module '_stat' (built-in)>, <module 'ntpath' from 'D:\Program Files (x86)\python36\lib\ntpath.py'>, <module 'genericpath' from 'D:\Program Files (x86)\python36\lib\genericpath.py'>, <module 'ntpath' from 'D:\Program Files (x86)\python36\lib\ntpath.py'>, <module '_collections_abc' from 'D:\Program Files (x86)\python36\lib\_collections_abc.py'>, <module '_sitebuiltins' from 'D:\Program Files (x86)\python36\lib\_sitebuiltins.py'>, <module 'sysconfig' from 'D:\Program Files (x86)\python36\lib\sysconfig.py'>, <module 'sitecustomize' from 'D:\Program Files\JetBrains\PyCharm 2017.3.5\helpers\pycharm_matplotlib_backend\sitecustomize.py'>, <module 'time' (built-in)>])
    <module 'time' (built-in)>
    
    Process finished with exit code 0
    demo_result
     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 import sys
     4 import time
     5 print(sys.modules.keys())
     6 print(sys.modules.values())
     7 print(sys.modules['time'])
     8 
     9 
    10 
    11 # import sys
    12 # print(sys.argv)
    13 #
    14 # if sys.argv[1]=='post':
    15 #     print('执行post操作')
    16 #
    17 # elif sys.argv[1]=='download':
    18 #     print('执行下载操作')
    19 
    20 # print(sys.argv)
    21 
    22 
    23 
    24 
    25 # def test():
    26 #     if len(sys.argv)==1:
    27 #         print('hello,world!')
    28 #     elif len(sys.argv)==2:
    29 #         print('hello,%s!'%sys.argv[1])
    30 #
    31 #     else:
    32 #         print('输入参数已经超过一个了')
    33 #
    34 # test()
    35 
    36 
    37 #
    38 # import sys
    39 # print( sys.argv[0])
    40 # print(sys.argv[1])
    41 
    42 #!/usr/bin/env python3
    43 # -*- coding: utf-8 -*-
    44 
    45 # ' a test module '
    46 #
    47 # __author__ = 'Michael Liao'
    48 #
    49 # import sys
    50 #
    51 # def test():
    52 #     args = sys.argv
    53 #     if len(args)==1:
    54 #         print('Hello, world!')
    55 #     elif len(args)==2:
    56 #         print('Hello, %s!' % args[1])
    57 #     else:
    58 #         print('Too many arguments!')
    59 #
    60 # if __name__=='__main__':
    61 #     test()
    演示

    sys.stdinstdoutstderr

    功能:stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

    转载:http://www.cnblogs.com/cherishry/p/5725184.html

    #-*- coding:utf-8 -*-
    import sys
    
    
    # # print(sys.path)
    # print(sys.modules.keys())
    # print(sys.modules.values())
    # print(sys.modules['sys'])
    #
    import os
    
    if sys.platform=='win32':
        os.system('dir')
    
    else:
        os.system('ls')
    
    
    # print(sys.platform)
    
    
    # def exitfunc(value):
    #     print(value)
    #     sys.exit(0)
    #
    # print('hello')
    #
    # try:
    #     sys.exit(1)
    # except SystemExit as value:
    #     exitfunc(value)
    #
    # print('come')
    
    
    
    
    
    
    
    
    
    #os 模块是和系统shell 进行交互
    #sys 模块是和python解释器进行交互
    
    #print(help(sys))
    #
    # print(sys.argv)
    # #sys.argv
    #
    # print(sys.argv[0])
    # print(sys.argv[1])
    #
    # def post():
    #     print('ok')
    #
    #
    #
    # def download():
    #     print('执行下载功能')
    #
    #
    # if sys.argv[1]=='post':
    #     print('执行post上传功能')
    #     post()
    #
    # elif sys.argv[1]=='download':
    #     download()
  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9295238.html
Copyright © 2011-2022 走看看