• 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()
  • 相关阅读:
    12
    Kafka设计解析(二)- Kafka High Availability (上)
    Apache kafka 工作原理介绍
    Kafka设计解析(一)- Kafka背景及架构介绍
    【转载】MySQL之权限管理
    【转载】漫谈HADOOP HDFS BALANCER
    【转载】HDFS 上传文件不均衡和Balancer太慢的问题
    【转载】mysql binlog日志自动清理及手动删除
    【转】Typora极简教程
    更新Linux服务器时间
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9295238.html
Copyright © 2020-2023  润新知