python包

sys模块,主要实现与解释器相关的操作:

  sys.argv,用来获取命令行参数,是一个list

    sys.argv[0]   代表文件本身路径,

    sys.argv[1]   开始,代表传入的参数; 

   sys.exit(),python带返回码返回,0默认的正常退出,1表示异常退出。

   sys.stdin,sys.stdout,sys.err,分别代码标准输入输出的句柄。 

    1) 标准输出的写,可以直接print "num",也可以 sys.stdout.write(hello world“”) 

    2) 通过对stdout对象进行赋值,可以直接重定向。

      with open("file", 'r') as file:

        sys.stdout = file;

        print "this"

    3)直接在print函数中,指定句柄,print ("i am hym", file=f)

 

os模块,提供系统级别的操作,或者系统信息。

  os.system(),运行shell命令,

  os.environ,返回系统的环境变量,是一个dict指针

    env_dist = os.environ

    print env_dist['Java']

    print env_dist.get('Java')

 

subprocess,系统命令操作,

    输入参数,shell=False,默认情况,cmd只能是一个string

           shell=True,cmd只能是一个list。

   call(),执行cmd,等待cmd完成,返回返回码。

   check_call(),与call()类似,但是返回值不为0时,会raise objection。

   getstatusoutput(),返回(status,output)

   getoutput()

   check_output(),与getoutput类似,但是返回值不为0时,会raise objection。

 Popen的object,内部的attribute,stdin,stdout,stderr,pid,returncode。

            内部的function,poll(),检查child process是不是结束,返回返回码。

                  wait(),等待child process结束。

                  communicate(),与子进程交流,将括号中的数据发送到子进程的stdin中,为None,不发送。

                          返回一个tuple,(stdout,stderr)

  Popen返回的是一个process的对象,可以实现很多自由控制;

    p1 = Popen("mesg", stdout=PIPE)   PIPE表示管道。

    p2 = Popen("grep, hda", stdin=p1.stdout, stdout=PIPE)

    output = p2.communicate()[0]

    p1.wait()    p2.wait()

 

python中的自带函数和变量

启动python之后,python会自动import一个__builtin__的模块, 其中包含了4个copyright相关的名字:

                            6个内建的常数,None,True,False等。

                            68个内建函数,abs(),len()等。

                            64个Exception 命名。

    (python3中,该模块的名字改为builtins)

 

dir()函数,返回当前范围内的变量,方法,类型的列表,可以加object来返回某个object的。

  dir(list),dir(dict),dir(re),dir(list),dir(dict),dir(tuple),dir(object) 等。

  打印帮助文档,print (re.__doc__),__doc__这样的方法可以通过dir()来查询到, 还有__name__

 

dir(__builtin__)可以查看python中内建的函数,

dir(str),dir(list)可以查看某个类型的内建函数。

help()函数,详细的打印当前函数,模块的说明。内建函数。

 

ABC,Abstract Base Class(抽象基类),主要定义基本类和基本的抽象方法,定义一个特殊的metaclass

  metaclass还定义了一些装饰器,@abstractmethod,@abstractproperty

  abc.ABCMeta用于在Python程序中创建抽象基类。

其他的抽象基类,必须从该模块来扩展, Python2的扩展方式,  class Myclass(object):

                              __mtaclass__ =  abc.ABCMeta

                   Python3的扩展方式,  class Myclass(metaclass == abc.ABCMeta):

  定义纯虚的function和attr,可以使用装饰器,@abc.abstractmethod,@abc.abstractproperty

为了统一Python2和Python3的统一性,可以import six,在虚类中加装饰器

  import six

  @six.add_metaclass(Meta)

  class Myclass(object):

还有一种虚拟子类,通过register的方式注册的产生虚类的情况。

 

python中的标准库有很多种,设计到方方面面,官方的dos网址:

  https://docs.python.org/3/library/index.html

    

    

 

posted @ 2018-03-19 19:58  _9_8  阅读(528)  评论(0编辑  收藏  举报