zoukankan      html  css  js  c++  java
  • python模块整理2sys模块

    官方文档:http://docs.python.org/library/sys.html#module-sys
    sys.argv 命令行参数List,第一个元素是程序本身路径
    sys.modules.keys() 返回所有已经导入的模块列表
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
    sys.exit(n) 退出程序,正常退出时exit(0)
    sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
    sys.version 获取Python解释程序的版本信息
    sys.maxint 最大的Int值
    sys.maxunicode 最大的Unicode值
    sys.modules 返回系统导入的模块字段,key是模块名,value是模块
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform 返回操作系统平台名称
    sys.stdout 标准输出
    sys.stdin 标准输入
    sys.stderr 错误输出
    sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
    sys.exec_prefix 返回平台独立的python文件安装的位置
    sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
    sys.copyright 记录python版权相关的东西
    sys.api_version 解释器的C的API版本
    sys.version_info 'final'表示最终,也有'candidate'表示候选,表示版本级别,是否有后继的发行
    sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._.指在python的交互式解释器里,'_' 代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来
    sys.getdefaultencoding() 返回当前你所用的默认的字符编码格式
    sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字
    sys.setdefaultencoding(name)用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出 LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除
    sys.builtin_module_names Python解释器导入的模块列表
    sys.executable Python解释程序路径
    sys.getwindowsversion() 获取Windows的版本
    sys.stdin.readline() 从标准输入读一行,sys.stdout.write("a") 屏幕输出a

    分类整理
    一、系统信息
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform
    sys.executable Python解释程序路径

    二、模块信息
    sys.modules.keys() 返回所有已经导入的模块列表
    sys.modules 返回系统导入的模块字段,key是模块名,value是模块
    sys.builtin_module_names Python解释器导入的模块列表

    三、脚本常用
    1、sys.argv
    所有命令行参数都存放在List中,是一个可迭代对象
    第一个元素sys.argv[0]是程序本身[非全路径]
    实例
    #vim sys1.py
    #!/bin/env python
    #-*- coding: utf-8 -*-
    import sys
    print sys.argv
    for argv in enumerate(sys.argv):
    print argv
    sys.exit(99)
    没有输入参数的情况下
    # $(pwd -P)/sys1.py
    ['/root/sys1.py']
    (0, '/root/sys1.py'
    输入几个参数
    # $(pwd -P)/sys1.py jin 1 go
    ['/root/sys1.py', 'jin', '1', 'go']
    (0, '/root/sys1.py')
    (1, 'jin')
    (2, '1')
    (3, 'go')
    2、sys.exit(n)
    退出程序,正常退出时exit(0),定义退出状态
    # $(pwd -P)/sys1.py
    ['/root/sys1.py']
    (0, '/root/sys1.py')
    # echo $?
    99

    四、输出相关
    sys.stdout 标准输出
    sys.stdin 标准输入
    sys.stderr 错误输出
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息

    sys.stdin, sys.stdout, stderr到底是什么呢?我们在Python运行环境中输入以下代码:
    import sys
    for f in (sys.stdin, sys.stdout, sys.stderr): print f
    输出为:
    <open file '<stdin>', mode 'r' at 892210>
    <open file '<stdout>', mode 'w' at 892270>
    <open file '<stderr>', mode 'w at 8922d0>

    由此可以看出stdin, stdout, stderr在Python中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。
    而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。那么我们是否可以在Python程序内部将stdin,stdout,stderr读写操作重定向到一个内部对象呢?答案是肯定的。
    Python提供了一个StringIO模块来完成这个设想,比如:
    from StringIO import StringIO
    import sys
    buff =StringIO()

    temp = sys.stdout #保存标准I/O流
    sys.stdout = buff #将标准I/O流重定向到buff对象
    print 42, 'hello', 0.001

    sys.stdout =temp #恢复标准I/O流
    print buff.getvalue()


    1、sys.stdout
    >>> type(sys.stdout)
    <type 'file'>
    是一个文件对象
    >>> dir(sys.stdout)
    可以看到这些方法和文件对象几乎一样
    sys.stdout.write 无换行符输出,在需要无换行符输出的时候需要用到
    sys.stdout.writelines() 无换行符输出
    sys.stdout.write("a") 屏幕输出无换行符a
    sys.stdout.writelines('a')
    需要需要换行,需要\n
    >>> sys.stdout.writelines('teataetaetet\nagegaegeg\n')
    teataetaetet
    agegaegeg
    >>> sys.stdout.write('teataetaet\netagegaegeg')
    teataetaet
    etagegaegeg>>>

    2、sys.stdin
    >>> name=sys.stdin.read()
    teste
    test
    >>> name
    'teste\ntest\n'
    sys.stdin.readline() 从标准输入读一行,
    和input和raw_input()有点类似

    3、sys.exc_info()
    函数返回的三个值:类型(异常类),值(异常实例),和回溯(traceback),相应的回溯对象.

  • 相关阅读:
    北京东城区社保转出业务个人办理图解流程,需要的朋友可以参考
    微信自定义菜单代码实现
    那你就是不对称加密了
    数字签名和数字认证
    微信认证开发教程
    Eclipse配置Maven
    php随笔
    让SAE下的wordpress支持文件上传
    HTTP Header 详解
    浅谈JS DDoS攻击原理与防御
  • 原文地址:https://www.cnblogs.com/diege/p/2710776.html
Copyright © 2011-2022 走看看