SubSections
模組
輸入輸出
錯誤檢查
類
標準庫
七、模組
(1)、模組匯入
#系統模組
import os, sys, shutil, logging
#自訂模組
import proc, proc1
(2)、模組調用
proc.all_proc(param,param, param)
模組搜尋路徑
匯入一個叫proc的模組時,解譯器先在目前的目錄中搜尋名為proc.py 的檔案,然後在環境變數PYTHONPATH表示的目錄列表中搜尋,然後是環境變數PATH中的路徑列表。如果 PYTHONPATH沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄.D:\Python27
(3)、標準模組(Standard Modules)
核心模組 具體參照《python標準庫》
1. 內建函數和異常
_ _builtin_ _ 模組和內建異常的exceptions
定義內建函數(例如 len, int, range ...)和所有異常。
Python 在啟動時匯入這兩個模組, 使任何程式都能夠使用它們.
2. 作業系統介面模組
它們為底層作業系統提供了平台獨立的介面.
這類的模組包括: 提供檔案和進程處理功能的os模組;
提供平台獨立的檔案名稱處理 (分拆目錄名, 檔案名稱, 尾碼等)的os.path模組;
以及時間日期處理相關的 time/datetime 模組.
3. 類型支援模組
標準庫裡有許多用於支援內建類型操作的庫.
string模組實現了常用的字串處理.
math模組提供了數學計算操作和常量(pi, e都屬於這類常量),
cmath模組為複數提供了和 math 一樣的功能.
4. Regex
re模組為Python提供了Regex支援. Regex是用於匹配字串或特定子字串的有特定文法的字串模式.
5. 語言支援模組
sys模組可以讓你訪問解譯器相關參數,比如模組搜尋路徑,解譯器版本號碼等.
operator模組提供了和內建操作符作用相同的函數. copy 模組允許你複製對象,
Python 2.0新加入的gc模組提供了對垃圾收集的相關控制功能.
(4)、Packages 包
A.B 的模組表示了名為 "B" 的包中名為 "A" 的子模組。使用模組來儲存不同的模組架構可以避免全域變數之間的相互衝突,使用包可以避免模組之間的命名衝突。
八、輸入輸出
(1)、字串的輸出
print
import osfileName = r"ac.txt";filePath=r"e:\ac.txt";print fileName,os.path.abspath(filePath)
output:
ac.txt e:\ac.txt
os.path的一些操作
os.path.abspath(path)
返回path正常化的絕對路徑。
os.path.abspath('test.csv')
'C:\\Python25\\test.csv'
os.path.split(path)
將path分割成目錄和檔案名稱二元組返回。
os.path.split('c:\\csv\\test.csv')
('c:\\csv', 'test.csv')
os.path.dirname(path)
返回path的目錄。其實就是os.path.split(path)的第一個元素。
os.path.basename(path)
返回path最後的檔案名稱。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素。
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
os.path.isfile(path)
如果path是一個存在的檔案,返回True。否則返回False。
os.path.isdir(path)
如果path是一個存在的目錄,則返回True。否則返回False。
os.path.join(path1[, path2[, ...]])
將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略。
os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
(2)、檔案的讀和寫
open() 返回一個檔案,通常的用法需要兩個參數open(filename, mode)。
可選的模式有'r' ,此選項使檔案唯讀;
'w',此選項使檔案唯寫(對於同名檔案,該操作使原有檔案被覆蓋);
'a' ,此選項以追加方式開啟檔案;
'r+' ,此選項以讀寫方式開啟檔案;
如果沒有指定,預設為 'r' 模式。
(3)、檔案對象操作
f = open(filePath, 'r')
f.read(size);該方法讀取若干數量的資料並以字串形式返回其內容,字串長度為數值size 所指定的大小。如果沒有指定 size或者指定為負數,就會讀取並返回整個檔案。
如果到了檔案末尾,f.read()會返回一個Null 字元串("")。
f.readline()從檔案中讀取單獨一行,字串結尾會自動加上一個分行符號,只有當檔案最後一行沒有以分行符號結尾時,這一操作才會被忽略。這樣傳回值就不會有什麼混淆不清,如果如果 f.readline()返回一個Null 字元串,那就表示到達了檔案末尾,如果是一個空行,就會描述為'\n′ ,一個只包含分行符號的字串。
f.write(string) 將 string 的內容寫入檔案,返回 None 。
value = ('the answer', 42)
s = str(value) #'('the answer', 42)'
f.write(s)
九、錯誤檢查
十、類
格式
class myObject(base):
body
參數base 是一個父類,Object 類是所有類的子類。
eg:
#!/usr/bin/python# -*- coding: utf-8 -*-'''Created on 2012-12-17@author: chenll'''class persion(object): 'class document' # 類文檔 #定義構造器 def __init__(self,nm,ph): #注意__init__,是兩個底線,而不是_init_ self.name = nm #設定name self.phone = ph #設定phone def printPer(self): print 'my persion' + self.name + ',' +self.phone#self 代表執行個體對象本身def main(): myPersion = persion( 'chen ','186188') myPersion.name myPersion.phone myPersion.printPer() if __name__ == "__main__": main();
十一、標準庫
Python語言的核心只包含數字、字串、列表、字典、檔案等常見類型和函數,而由Python標準庫提供了系統管理、網路通訊、文本處理、資料庫介面、圖形系統、XML處理等額外的功能。
Python標準庫的主要功能有:
文本處理,包含文字格式設定化、Regex匹配、文本差異計算與合并、Unicode支援,位元據處理等功能
檔案處理,包含檔案操作、建立臨時檔案、檔案壓縮與歸檔、操作設定檔等功能
作業系統功能,包含線程與進程支援、IO複用、日期與時間處理、調用系統函數、寫日記(logging)等功能
網路通訊,包含網路通訊端,SSL加密通訊、非同步網路通訊等功能
網路通訊協定,支援HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網路通訊協定,並提供了編寫網路伺服器的架構
W3C格式支援,包含HTML,SGML,XML的處理。
其它功能,包括國際化支援、數學運算、HASH、Tkinter等
#!/usr/bin/python# -*- coding: utf-8 -*-'''Created on 2012-12-17@author: chenll'''import sysdef main(): ''' (1)、sys模組。 當前啟動並執行程式名稱,作為 sys.argv[0]其他的命令列參數在這個項目之後。 ''' if len(sys.argv) >0: print sys.argv[0]; if len(sys.argv) >1: print sys.argv[1]; ''' D:\Workspaces\Python\com\mapbar\python>python HelloWorld1.py x HelloWorld1.py x ''' ''' (2)、os模組,這個模組包含普遍的作業系統功能.如果你希望你的程式能夠與平台無關的話,這個模組是尤為重要的。比如:使用os.sep可 以取代作業系統特定的路徑分割符。 os.name 字串指示你正在使用的平台。比如對於 Windows,它是'nt',而對於 Linux/Unix 使用者,它是'posix'。 os.getcwd()函數得到當前工作目錄,即當前 Python 指令碼工作的目錄路徑。 os.getenv()和 os.putenv()函數分別用來讀取和設定環境變數。 os.listdir()返回指定目錄下的所有檔案和目錄名。 os.remove()函數用來刪除一個檔案。 os.system()函數用來運行 shell 命令。 os.linesep 字串給出當前平台使用的行終止符。例如,Windows 使用'\r\n',Linux 使用'\n'而 Mac 使用'\r'。 os.path.split()函數返回一個路徑的目錄名和檔案名稱 os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個檔案還是目錄。 os.path.existe()函數用來檢驗給出的路徑是否真地存在。 '''if __name__ == "__main__": main();