1. 程式人生 > 實用技巧 >python 常用模組

python 常用模組

os模組:

  1. os.remove() 刪除檔案
  2. os.unlink() 刪除檔案
  3. os.rename() 重新命名檔案
  4. os.listdir() 列出指定目錄下所有檔案
  5. os.chdir() 改變當前工作目錄
  6. os.getcwd() 獲取當前檔案路徑
  7. os.mkdir() 新建目錄
  8. os.rmdir() 刪除空目錄(刪除非空目錄, 使用shutil.rmtree())
  9. os.makedirs() 建立多級目錄
  10. os.removedirs() 刪除多級目錄
  11. os.stat(file) 獲取檔案屬性
  12. os.chmod(file) 修改檔案許可權
  13. os.utime(file) 修改檔案時間戳
  14. os.name(file) 獲取作業系統標識
  15. os.system() 執行作業系統命令
  16. os.execvp() 啟動一個新程序
  17. os.fork() 獲取父程序ID,在子程序返回中返回0
  18. os.execvp() 執行外部程式指令碼(Uinx)
  19. os.spawn() 執行外部程式指令碼(Windows)
  20. os.access(path, mode) 判斷檔案許可權(詳細參考cnblogs)
  21. os.wait() 暫時未知
  22. os.path模組:
  23. os.path.split(filename) 將檔案路徑和檔名分割(會將最後一個目錄作為檔名而分離)
  24. os.path.splitext(filename) 將檔案路徑和副檔名分割成一個元組
  25. os.path.dirname(filename) 返回檔案路徑的目錄部分
  26. os.path.basename(filename) 返回檔案路徑的檔名部分
  27. os.path.join(dirname,basename) 將檔案路徑和檔名湊成完整檔案路徑
  28. os.path.abspath(name) 獲得絕對路徑
  29. os.path.splitunc(path) 把路徑分割為掛載點和檔名
  30. os.path.normpath(path) 規範path字串形式
  31. os.path.exists() 判斷檔案或目錄是否存在
  32. os.path.isabs() 如果path是絕對路徑,返回True
  33. os.path.realpath(path) #返回path的真實路徑
  34. os.path.relpath(path[, start]) #從start開始計算相對路徑
  35. os.path.normcase(path) #轉換path的大小寫和斜槓
  36. os.path.isdir() 判斷name是不是一個目錄,name不是目錄就返回false
  37. os.path.isfile() 判斷name是不是一個檔案,不存在返回false
  38. os.path.islink() 判斷檔案是否連線檔案,返回boolean
  39. os.path.ismount() 指定路徑是否存在且為一個掛載點,返回boolean
  40. os.path.samefile() 是否相同路徑的檔案,返回boolean
  41. os.path.getatime() 返回最近訪問時間 浮點型
  42. os.path.getmtime() 返回上一次修改時間 浮點型
  43. os.path.getctime() 返回檔案建立時間 浮點型
  44. os.path.getsize() 返回檔案大小 位元組單位
  45. os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑
  46. os.path.lexists #路徑存在則返回True,路徑損壞也返回True
  47. os.path.expanduser(path) #把path中包含的”~”和”~user”轉換成使用者目錄
  48. os.path.expandvars(path) #根據環境變數的值替換path中包含的”$name”和”${name}”
  49. os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案
  50. os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同一個檔案
  51. os.path.splitdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組
  52. os.path.walk(path, visit, arg) #遍歷path,給每個path執行一個函式詳細見手冊
  53. os.path.supports_unicode_filenames() 設定是否支援unicode路徑名

stat模組:

  1. 描述os.stat()返回的檔案屬性列表中各值的意義
  2. fileStats = os.stat(path) 獲取到的檔案屬性列表
  3. fileStats[stat.ST_MODE] 獲取檔案的模式
  4. fileStats[stat.ST_SIZE] 檔案大小
  5. fileStats[stat.ST_MTIME] 檔案最後修改時間
  6. fileStats[stat.ST_ATIME] 檔案最後訪問時間
  7. fileStats[stat.ST_CTIME] 檔案建立時間
  8. stat.S_ISDIR(fileStats[stat.ST_MODE]) 是否目錄
  9. stat.S_ISREG(fileStats[stat.ST_MODE]) 是否一般檔案
  10. stat.S_ISLNK(fileStats[stat.ST_MODE]) 是否連線檔案
  11. stat.S_ISSOCK(fileStats[stat.ST_MODE]) 是否COCK檔案
  12. stat.S_ISFIFO(fileStats[stat.ST_MODE]) 是否命名管道
  13. stat.S_ISBLK(fileStats[stat.ST_MODE]) 是否塊裝置
  14. stat.S_ISCHR(fileStats[stat.ST_MODE]) 是否字元設定

sys模組:

  1. sys.argv 命令列引數List,第一個元素是程式本身路徑
  2. sys.path 返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值
  3. sys.modules.keys() 返回所有已經匯入的模組列表
  4. sys.modules 返回系統匯入的模組欄位,key是模組名,value是模組
  5. sys.exc_info() 獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細資訊
  6. sys.exit(n) 退出程式,正常退出時exit(0)
  7. sys.hexversion 獲取Python解釋程式的版本值,16進位制格式如:0x020403F0
  8. sys.version 獲取Python解釋程式的版本資訊
  9. sys.platform 返回作業系統平臺名稱
  10. sys.stdout 標準輸出
  11. sys.stdout.write(‘aaa‘) 標準輸出內容
  12. sys.stdout.writelines() 無換行輸出
  13. sys.stdin 標準輸入
  14. sys.stdin.read() 輸入一行
  15. sys.stderr 錯誤輸出
  16. sys.exc_clear() 用來清除當前執行緒所出現的當前的或最近的錯誤資訊
  17. sys.exec_prefix 返回平臺獨立的python檔案安裝的位置
  18. sys.byteorder 本地位元組規則的指示器,big-endian平臺的值是‘big‘,little-endian平臺的值是‘little‘
  19. sys.copyright 記錄python版權相關的東西
  20. sys.api_version 直譯器的C的API版本
  21. sys.version_info ‘final‘表示最終,也有‘candidate‘表示候選,表示版本級別,是否有後繼的發行
  22. sys.getdefaultencoding() 返回當前你所用的預設的字元編碼格式
  23. sys.getfilesystemencoding() 返回將Unicode檔名轉換成系統檔名的編碼的名字
  24. sys.builtin_module_names Python直譯器匯入的內建模組列表
  25. sys.executable Python解釋程式路徑
  26. sys.getwindowsversion() 獲取Windows的版本
  27. sys.stdin.readline() 從標準輸入讀一行,sys.stdout.write(“a”) 螢幕輸出a
  28. sys.setdefaultencoding(name) 用來設定當前預設的字元編碼(詳細使用參考文件)
  29. sys.displayhook(value) 如果value非空,這個函式會把他輸出到sys.stdout(詳細使用參考文件)

datetime,date,time模組:

  1. datetime.date.today() 本地日期物件,(用str函式可得到它的字面表示(2014-03-24))
  2. datetime.date.isoformat(obj) 當前[年-月-日]字串表示(2014-03-24)
  3. datetime.date.fromtimestamp() 返回一個日期物件,引數是時間戳,返回 [年-月-日]
  4. datetime.date.weekday(obj) 返回一個日期物件的星期數,週一是0
  5. datetime.date.isoweekday(obj) 返回一個日期物件的星期數,週一是1
  6. datetime.date.isocalendar(obj) 把日期物件返回一個帶有年月日的元組
  7. datetime物件:
  8. datetime.datetime.today() 返回一個包含本地時間(含微秒數)的datetime物件 2014-03-24 23:31:50.419000
  9. datetime.datetime.now([tz]) 返回指定時區的datetime物件 2014-03-24 23:31:50.419000
  10. datetime.datetime.utcnow() 返回一個零時區的datetime物件
  11. datetime.fromtimestamp(timestamp[,tz]) 按時間戳返回一個datetime物件,可指定時區,可用於strftime轉換為日期表示
  12. datetime.utcfromtimestamp(timestamp) 按時間戳返回一個UTC-datetime物件
  13. datetime.datetime.strptime(‘2014-03-16 12:21:21‘,”%Y-%m-%d %H:%M:%S”) 將字串轉為datetime物件
  14. datetime.datetime.strftime(datetime.datetime.now(), ‘%Y%m%d %H%M%S‘) 將datetime物件轉換為str表示形式
  15. datetime.date.today().timetuple() 轉換為時間戳datetime元組物件,可用於轉換時間戳
  16. datetime.datetime.now().timetuple()
  17. time.mktime(timetupleobj) 將datetime元組物件轉為時間戳
  18. time.time() 當前時間戳
  19. time.localtime
  20. time.gmtime

hashlib,md5模組:

  1. hashlib.md5(‘md5_str‘).hexdigest() 對指定字串md5加密
  2. md5.md5(‘md5_str‘).hexdigest() 對指定字串md5加密

random模組:

  1. random.random() 產生0-1的隨機浮點數
  2. random.uniform(a, b) 產生指定範圍內的隨機浮點數
  3. random.randint(a, b) 產生指定範圍內的隨機整數
  4. random.randrange([start], stop[, step]) 從一個指定步長的集合中產生隨機數
  5. random.choice(sequence) 從序列中產生一個隨機數
  6. random.shuffle(x[, random]) 將一個列表中的元素打亂
  7. random.sample(sequence, k) 從序列中隨機獲取指定長度的片斷

types模組:

  1. 儲存了所有資料型別名稱。
  2. if type(‘1111‘) == types.StringType:
  3. MySQLdb模組:
  4. MySQLdb.get_client_info() 獲取API版本
  5. MySQLdb.Binary(‘string‘) 轉為二進位制資料形式
  6. MySQLdb.escape_string(‘str‘) 針對mysql的字元轉義函式
  7. MySQLdb.DateFromTicks(1395842548) 把時間戳轉為datetime.date物件例項
  8. MySQLdb.TimestampFromTicks(1395842548) 把時間戳轉為datetime.datetime物件例項
  9. MySQLdb.string_literal(‘str‘) 字元轉義
  10. MySQLdb.cursor()遊標物件上的方法:《python核心程式設計》P624

atexit模組:

atexit.register(fun,args,args2..) 註冊函式func,在解析器退出前呼叫該函式

string模組

  1. str.capitalize() 把字串的第一個字元大寫
  2. str.center(width) 返回一個原字串居中,並使用空格填充到width長度的新字串
  3. str.ljust(width) 返回一個原字串左對齊,用空格填充到指定長度的新字串
  4. str.rjust(width) 返回一個原字串右對齊,用空格填充到指定長度的新字串
  5. str.zfill(width) 返回字串右對齊,前面用0填充到指定長度的新字串
  6. str.count(str,[beg,len]) 返回子字串在原字串出現次數,beg,len是範圍
  7. str.decode(encodeing[,replace]) 解碼string,出錯引發ValueError異常
  8. str.encode(encodeing[,replace]) 解碼string
  9. str.endswith(substr[,beg,end]) 字串是否以substr結束,beg,end是範圍
  10. str.startswith(substr[,beg,end]) 字串是否以substr開頭,beg,end是範圍
  11. str.expandtabs(tabsize = 8) 把字串的tab轉為空格,預設為8個
  12. str.find(str,[stat,end]) 查詢子字串在字串第一次出現的位置,否則返回-1
  13. str.index(str,[beg,end]) 查詢子字串在指定字元中的位置,不存在報異常
  14. str.isalnum() 檢查字串是否以字母和數字組成,是返回true否則False
  15. str.isalpha() 檢查字串是否以純字母組成,是返回true,否則false
  16. str.isdecimal() 檢查字串是否以純十進位制數字組成,返回布林值
  17. str.isdigit() 檢查字串是否以純數字組成,返回布林值
  18. str.islower() 檢查字串是否全是小寫,返回布林值
  19. str.isupper() 檢查字串是否全是大寫,返回布林值
  20. str.isnumeric() 檢查字串是否只包含數字字元,返回布林值
  21. str.isspace() 如果str中只包含空格,則返回true,否則FALSE
  22. str.title() 返回標題化的字串(所有單詞首字母大寫,其餘小寫)
  23. str.istitle() 如果字串是標題化的(參見title())則返回true,否則false
  24. str.join(seq) 以str作為連線符,將一個序列中的元素連線成字串
  25. str.split(str=‘‘,num) 以str作為分隔符,將一個字串分隔成一個序列,num是被分隔的字串
  26. str.splitlines(num) 以行分隔,返回各行內容作為元素的列表
  27. str.lower() 將大寫轉為小寫
  28. str.upper() 轉換字串的小寫為大寫
  29. str.swapcase() 翻換字串的大小寫
  30. str.lstrip() 去掉字元左邊的空格和回車換行符
  31. str.rstrip() 去掉字元右邊的空格和回車換行符
  32. str.strip() 去掉字元兩邊的空格和回車換行符
  33. str.partition(substr) 從substr出現的第一個位置起,將str分割成一個3元組。
  34. str.replace(str1,str2,num) 查詢str1替換成str2,num是替換次數
  35. str.rfind(str[,beg,end]) 從右邊開始查詢子字串
  36. str.rindex(str,[beg,end]) 從右邊開始查詢子字串位置
  37. str.rpartition(str) 類似partition函式,不過從右邊開始查詢
  38. str.translate(str,del=‘‘) 按str給出的錶轉換string的字元,del是要過慮的字元

urllib模組:

  1. urllib.quote(string[,safe]) 對字串進行編碼。引數safe指定了不需要編碼的字元
  2. urllib.unquote(string) 對字串進行解碼
  3. urllib.quote_plus(string[,safe]) 與urllib.quote類似,但這個方法用‘+‘來替換‘ ‘,而quote用‘%20‘來代替‘ ‘
  4. urllib.unquote_plus(string ) 對字串進行解碼
  5. urllib.urlencode(query[,doseq]) 將dict或者包含兩個元素的元組列表轉換成url引數。
  6. 例如 字典{‘name‘:‘wklken‘,‘pwd‘:‘123‘}將被轉換為”name=wklken&pwd=123″
  7. urllib.pathname2url(path) 將本地路徑轉換成url路徑
  8. urllib.url2pathname(path) 將url路徑轉換成本地路徑
  9. urllib.urlretrieve(url[,filename[,reporthook[,data]]]) 下載遠端資料到本地
  10. filename:指定儲存到本地的路徑(若未指定該,urllib生成一個臨時檔案儲存資料)
  11. reporthook:回撥函式,當連線上伺服器、以及相應的資料塊傳輸完畢的時候會觸發該回調
  12. data:指post到伺服器的資料
  13. rulrs = urllib.urlopen(url[,data[,proxies]]) 抓取網頁資訊,[data]post資料到Url,proxies設定的代理
  14. urlrs.readline() 跟檔案物件使用一樣
  15. urlrs.readlines() 跟檔案物件使用一樣
  16. urlrs.fileno() 跟檔案物件使用一樣
  17. urlrs.close() 跟檔案物件使用一樣
  18. urlrs.info() 返回一個httplib.HTTPMessage物件,表示遠端伺服器返回的頭資訊
  19. urlrs.getcode() 獲取請求返回狀態HTTP狀態碼
  20. urlrs.geturl() 返回請求的URL

re模組:

  1. 一.常用正則表示式符號和語法:
  2. '.' 匹配所有字串,除\n以外
  3. ‘-’ 表示範圍[0-9]
  4. '*' 匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*。
  5. '+' 匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+
  6. '^' 匹配字串開頭
  7. ‘$’ 匹配字串結尾 re
  8. '\' 轉義字元, 使後一個字元改變原來的意思,如果字串中有字元*需要匹配,可以\*或者字符集[*] re.findall(r'3\*','3*ds')結['3*']
  9. '*' 匹配前面的字元0次或多次 re.findall("ab*","cabc3abcbbac")結果:['ab', 'ab', 'a']
  10. ‘?’ 匹配前一個字串0次或1次 re.findall('ab?','abcabcabcadf')結果['ab', 'ab', 'ab', 'a']
  11. '{m}' 匹配前一個字元m次 re.findall('cb{1}','bchbchcbfbcbb')結果['cb', 'cb']
  12. '{n,m}' 匹配前一個字元n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')結果['cbb']
  13. '\d' 匹配數字,等於[0-9] re.findall('\d','電話:10086')結果['1', '0', '0', '8', '6']
  14. '\D' 匹配非數字,等於[^0-9] re.findall('\D','電話:10086')結果['電', '話', ':']
  15. '\w' 匹配字母和數字,等於[A-Za-z0-9] re.findall('\w','alex123,./;;;')結果['a', 'l', 'e', 'x', '1', '2', '3']
  16. '\W' 匹配非英文字母和數字,等於[^A-Za-z0-9] re.findall('\W','alex123,./;;;')結果[',', '.', '/', ';', ';', ';']
  17. '\s' 匹配空白字元 re.findall('\s','3*ds \t\n')結果[' ', '\t', '\n']
  18. '\S' 匹配非空白字元 re.findall('\s','3*ds \t\n')結果['3', '*', 'd', 's']
  19. '\A' 匹配字串開頭
  20. '\Z' 匹配字串結尾
  21. '\b' 匹配單詞的詞首和詞尾,單詞被定義為一個字母數字序列,因此詞尾是用空白符或非字母數字符來表示的
  22. '\B' 與\b相反,只在當前位置不在單詞邊界時匹配
  23. '(?P<name>...)' 分組,除了原有編號外在指定一個額外的別名 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{8})","371481199306143242").groupdict("city") 結果{'province': '3714', 'city': '81', 'birthday': '19930614'}
  24. [] 是定義匹配的字元範圍。比如 [a-zA-Z0-9] 表示相應位置的字元要匹配英文字元和數字。[\s*]表示空格或者*號。
  25. 二.常用的re函式:
  26. 方法/屬性 作用
  27. re.match(pattern, string, flags=0) 從字串的起始位置匹配,如果起始位置匹配不成功的話,match()就返回none
  28. re.search(pattern, string, flags=0) 掃描整個字串並返回第一個成功的匹配
  29. re.findall(pattern, string, flags=0) 找到RE匹配的所有字串,並把他們作為一個列表返回
  30. re.finditer(pattern, string, flags=0) 找到RE匹配的所有字串,並把他們作為一個迭代器返回
  31. re.sub(pattern, repl, string, count=0, flags=0) 替換匹配到的字串

math模組

  1. ceil:取大於等於x的最小的整數值,如果x是一個整數,則返回x
  2. copysign:把y的正負號加到x前面,可以使用0
  3. cos:求x的餘弦,x必須是弧度
  4. degrees:把x從弧度轉換成角度
  5. e:表示一個常量
  6. exp:返回math.e,也就是2.71828的x次方
  7. expm1:返回math.e的x(其值為2.71828)次方的值減1
  8. fabs:返回x的絕對值
  9. factorial:取x的階乘的值
  10. floor:取小於等於x的最大的整數值,如果x是一個整數,則返回自身
  11. fmod:得到x/y的餘數,其值是一個浮點數
  12. frexp:返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍
  13. fsum:對迭代器裡的每個元素進行求和操作
  14. gcd:返回x和y的最大公約數
  15. hypot:如果x是不是無窮大的數字,則返回True,否則返回False
  16. isfinite:如果x是正無窮大或負無窮大,則返回True,否則返回False
  17. isinf:如果x是正無窮大或負無窮大,則返回True,否則返回False
  18. isnan:如果x不是數字True,否則返回False
  19. ldexp:返回x*(2**i)的值
  20. log:返回x的自然對數,預設以e為基數,base引數給定時,將x的對數返回給定的base,計算式為:log(x)/log(base)
  21. log10:返回x的以10為底的對數
  22. log1p:返回x+1的自然對數(基數為e)的值
  23. log2:返回x的基2對數
  24. modf:返回由x的小數部分和整數部分組成的元組
  25. pi:數字常量,圓周率
  26. pow:返回x的y次方,即x**y
  27. radians:把角度x轉換成弧度
  28. sin:求x(x為弧度)的正弦值
  29. sqrt:求x的平方根
  30. tan:返回x(x為弧度)的正切值
  31. trunc:返回x的整數部分