python的一些模塊

一、python的標準模塊

1、os
2、sys
3、glob模塊提供了一個函數用於從目錄通配符搜索中生成文件列表
4、re
5、mathtimeit
6、urllib
7、datetime
8、zlib
9、doctest
10、unittest

python正則表達式

正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。
Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。
re 模塊使 Python 語言擁有全部的正則表達式功能。
compile 函數根據一個模式字符串和可選的標誌參數生成一個正則表達式對象。該對象擁有一系列方法用於正則表達式匹配和替換。
re 模塊也提供了與這些方法功能完全一致的函數,這些函數使用一個模式字符串做爲它們的第一個參數。

python中re模塊

re中的函數
In [8]: re.
re.DEBUG        re.L            re.S            re.U            re.compile      re.findall      re.search       re.sub          
re.DOTALL       re.LOCALE       re.Scanner      re.UNICODE      re.copy_reg     re.finditer     re.split        re.subn         
re.I            re.M            re.T            re.VERBOSE      re.error        re.match        re.sre_compile  re.sys          
re.IGNORECASE   re.MULTILINE    re.TEMPLATE     re.X            re.escape       re.purge        re.sre_parse    re.template     
重點介紹幾個函數

1、re.match函數
re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。

re.match(pattern, string, flags=0)

函數參數說明:
參數 描述
pattern 匹配的正則表達式
string 要匹配的字符串。
flags 標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。參見:正則表達式修飾符 - 可選標誌

2、re.search方法
re.search 掃描整個字符串並返回第一個成功的匹配。

re.search(pattern, string, flags=0)

re.match與re.search的區別
re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。

3、re.sub方法
re.sub用於替換字符串中的匹配項。

re.sub(pattern, repl, string, count=0, flags=0)

參數:

pattern : 正則中的模式字符串。
repl : 替換的字符串,也可爲一個函數。
string : 要被查找替換的原始字符串。
count : 模式匹配後替換的最大次數,默認 0 表示替換所有的匹配。
4、re.compile 函數
compile 函數用於編譯正則表達式,生成一個正則表達式( Pattern )對象,供 match() 和 search() 這兩個函數使用。

re.compile(pattern[, flags])

參數:
pattern : 一個字符串形式的正則表達式
flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數爲:

re.I 忽略大小寫
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴於當前環境
re.M 多行模式
re.S 即爲 . 並且包括換行符在內的任意字符(. 不包括換行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴於 Unicode 字符屬性數據庫
re.X 爲了增加可讀性,忽略空格和 # 後面的註釋

5、re.findall方法
在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。

re.findall(pattern,string, flags)

參數
pattern 匹配的正則表達式
string 要匹配的字符串。
flags 標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。參見:正則表達式修飾符 - 可選標誌

或者:

pattern = re.compile() 
pattern.findall(string, pos, endpos)

參數:
string : 待匹配的字符串。
pos : 可選參數,指定字符串的起始位置,默認爲 0。
endpos : 可選參數,指定字符串的結束位置,默認爲字符串的長度。

6、re.finditer
和 findall 類似,在字符串中找到正則表達式所匹配的所有子串,並把它們作爲一個迭代器返回。

re.finditer(pattern, string, flags=0)

參數:
pattern 匹配的正則表達式
string 要匹配的字符串。
flags 標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。參見:正則表達式修飾符 - 可選標誌
7、re.split方法
split 方法按照能夠匹配的子串將字符串分割後返回列表,它的使用形式如下:

re.split(pattern, string[, maxsplit=0, flags=0])

參數 描述
pattern 匹配的正則表達式
string 要匹配的字符串。
maxsplit 分隔次數,maxsplit=1 分隔一次,默認爲 0,不限制次數。
flags 標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。參見:正則表達式修飾符 - 可選標誌

正則表達式對象

1、re.RegexObject
re.compile() 返回 RegexObject 對象。
2、re.MatchObject
group() 返回被 RE 匹配的字符串。

start() 返回匹配開始的位置
end() 返回匹配結束的位置
span() 返回一個元組包含匹配 (開始,結束) 的位置

實例:

>>>import re
>>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I)   # re.I 表示忽略大小寫
>>> m = pattern.match('Hello World Wide Web')
>>> print m                               # 匹配成功,返回一個 Match 對象
<_sre.SRE_Match object at 0x10bea83e8>
>>> m.group(0)                            # 返回匹配成功的整個子串
'Hello World'
>>> m.span(0)                             # 返回匹配成功的整個子串的索引
(0, 11)
>>> m.group(1)                            # 返回第一個分組匹配成功的子串
'Hello'
>>> m.span(1)                             # 返回第一個分組匹配成功的子串的索引
(0, 5)
>>> m.group(2)                            # 返回第二個分組匹配成功的子串
'World'
>>> m.span(2)                             # 返回第二個分組匹配成功的子串
(6, 11)
>>> m.groups()                            # 等價於 (m.group(1), m.group(2), ...)
('Hello', 'World')
>>> m.group(3)                            # 不存在第三個分組
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: no such group

二、python os模塊

os 模塊提供了非常豐富的方法用來處理文件和目錄。常用的方法如下表所示:

1 、os.access(path, mode)
檢驗權限模式

2 、os.chdir(path)
改變當前工作目錄

3 、os.chflags(path, flags)
設置路徑的標記爲數字標記。

4 、os.chmod(path, mode)
更改權限

5 、os.chown(path, uid, gid)
更改文件所有者

6 、os.chroot(path)
改變當前進程的根目錄

7 、os.close(fd)
關閉文件描述符 fd

8 、os.closerange(fd_low, fd_high)
關閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略

9 、os.dup(fd)
複製文件描述符 fd

10 、os.dup2(fd, fd2)
將一個文件描述符 fd 複製到另一個 fd2

11 、os.fchdir(fd)
通過文件描述符改變當前工作目錄

12 、os.fchmod(fd, mode)
改變一個文件的訪問權限,該文件由參數fd指定,參數mode是Unix下的文件訪問權限。

13 、os.fchown(fd, uid, gid)
修改一個文件的所有權,這個函數修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。

14 、os.fdatasync(fd)
強制將文件寫入磁盤,該文件由文件描述符fd指定,但是不強制更新文件的狀態信息

15 、os.fdopen(fd[, mode[, bufsize]])
通過文件描述符 fd 創建一個文件對象,並返回這個文件對象

16 、os.fpathconf(fd, name)
返回一個打開的文件的系統配置信息。name爲檢索的系統配置的值,它也許是一個定義系統值的字符串,這些名字在很多標準中指定(POSIX.1, Unix 95, Unix 98, 和其它)。

17 、os.fstat(fd)
返回文件描述符fd的狀態,像stat()。

18 、os.fstatvfs(fd)
返回包含文件描述符fd的文件的文件系統的信息,像 statvfs()

19 、os.fsync(fd)
強制將文件描述符爲fd的文件寫入硬盤。

20 、os.ftruncate(fd, length)
裁剪文件描述符fd對應的文件, 所以它最大不能超過文件大小。

21 、os.getcwd()
返回當前工作目錄

22 、os.getcwdu()
返回一個當前工作目錄的Unicode對象

23 、os.isatty(fd)
如果文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 否則False。

24 、os.lchflags(path, flags)
設置路徑的標記爲數字標記,類似 chflags(),但是沒有軟鏈接

25 、os.lchmod(path, mode)
修改連接文件權限

26 、os.lchown(path, uid, gid)
更改文件所有者,類似 chown,但是不追蹤鏈接。

27 、os.link(src, dst)
創建硬鏈接,名爲參數 dst,指向參數 src

28 、os.listdir(path)
返回path指定的文件夾包含的文件或文件夾的名字的列表。

29 、os.lseek(fd, pos, how)
設置文件描述符 fd當前位置爲pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效

30 、os.lstat(path)
像stat(),但是沒有軟鏈接

31 、os.major(device)
從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field)。

32 、os.makedev(major, minor)
以major和minor設備號組成一個原始設備號

33 、os.makedirs(path[, mode])
遞歸文件夾創建函數。像mkdir(), 但創建的所有intermediate-level文件夾需要包含子文件夾。

34 、os.minor(device)
從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field )。

35 、os.mkdir(path[, mode])
以數字mode的mode創建一個名爲path的文件夾.默認的 mode 是 0777 (八進制)。

36 、os.mkfifo(path[, mode])
創建命名管道,mode 爲數字,默認爲 0666 (八進制)

37、os.mknod(filename[, mode=0600, device])
創建一個名爲filename文件系統節點(文件,設備特別文件或者命名pipe)。

38 、os.open(file, flags[, mode])
打開一個文件,並且設置需要的打開選項,mode參數是可選的

39 、os.openpty()
打開一個新的僞終端對。返回 pty 和 tty的文件描述符。

40 、os.pathconf(path, name)
返回相關文件的系統配置信息。

41 、os.pipe()
創建一個管道. 返回一對文件描述符(r, w) 分別爲讀和寫

42 、os.popen(command[, mode[, bufsize]])
從一個 command 打開一個管道

43 、os.read(fd, n)
從文件描述符 fd 中讀取最多 n 個字節,返回包含讀取字節的字符串,文件描述符 fd對應文件已達到結尾, 返回一個空字符串。

44 、os.readlink(path)
返回軟鏈接所指向的文件

45 、os.remove(path)
刪除路徑爲path的文件。如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。

46 、os.removedirs(path)
遞歸刪除目錄。

47 、os.rename(src, dst)
重命名文件或目錄,從 src 到 dst

48 、os.renames(old, new)
遞歸地對目錄進行更名,也可以對文件進行更名。

49、os.rmdir(path)
刪除path指定的空目錄,如果目錄非空,則拋出一個OSError異常。

50
os.stat(path)
獲取path指定的路徑的信息,功能等同於C API中的stat()系統調用。

51 、os.stat_float_times([newvalue])
決定stat_result是否以float對象顯示時間戳

52 、os.statvfs(path)
獲取指定路徑的文件系統統計信息

53 、os.symlink(src, dst)
創建一個軟鏈接

54 、os.tcgetpgrp(fd)
返回與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組

55 、os.tcsetpgrp(fd, pg)
設置與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組爲pg。

56 、os.tempnam([dir[, prefix]])
返回唯一的路徑名用於創建臨時文件。

57 、os.tmpfile()
返回一個打開的模式爲(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除。

58 、os.tmpnam()
爲創建一個臨時文件返回一個唯一的路徑

59 、os.ttyname(fd)
返回一個字符串,它表示與文件描述符fd 關聯的終端設備。如果fd 沒有與終端設備關聯,則引發一個異常。

60 、os.unlink(path)
刪除文件路徑

61 、os.utime(path, times)
返回指定的path文件的訪問和修改的時間。

62 、os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
輸出在文件夾中的文件名通過在樹中游走,向上或者向下。

63 、os.write(fd, str)
寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章