sys模塊,主要實現與解釋器相關的操做:html
sys.argv,用來獲取命令行參數,是一個list;python
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