python包

sys模塊,主要實現與解釋器相關的操做:html

  sys.argv,用來獲取命令行參數,是一個listpython

    sys.argv[0]   表明文件自己路徑,shell

    sys.argv[1]   開始,表明傳入的參數; 函數

   sys.exit(),python帶返回碼返回,0默認的正常退出,1表示異常退出。ui

   sys.stdin,sys.stdout,sys.err,分別代碼標準輸入輸出的句柄。 this

    1) 標準輸出的寫,能夠直接print "num",也能夠 sys.stdout.write(hello world「」) 命令行

    2) 經過對stdout對象進行賦值,能夠直接重定向。設計

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

        sys.stdout = file;code

        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

    

    

相關文章
相關標籤/搜索