在自動化測試中,常常須要查找操做文件,好比說查找配置文件(從而讀取配置文件的信息),查找測試報告(從而發送測試報告郵件),常常要對大量文件和大量路徑進行操做,這個時候就須要用到os模塊,使用前先導入os模塊,即:import os(該模塊是系統自帶的,直接導入就能夠)html
舉例說明幾個經常使用的OS模塊下的方法python
os.getcwd() 獲取當前工做目錄windows
os.chdir()切換工做目錄async
os.listdir() 返回指定目錄下的文件名,注:返回的是以列表形式函數
os.path.join() 鏈接目錄或文件名測試
序號 | 方法及描述 |
---|---|
1 | 檢驗權限模式 |
2 | 改變當前工做目錄 |
3 | 設置路徑的標記爲數字標記。 |
4 | 更改權限 |
5 | 更改文件全部者 |
6 | 改變當前進程的根目錄 |
7 | 關閉文件描述符 fd |
8 | os.closerange(fd_low, fd_high) 關閉全部文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略 |
9 | 複製文件描述符 fd |
10 | 將一個文件描述符 fd 複製到另外一個 fd2 |
11 | 經過文件描述符改變當前工做目錄 |
12 | 改變一個文件的訪問權限,該文件由參數fd指定,參數mode是Unix下的文件訪問權限。 |
13 | 修改一個文件的全部權,這個函數修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。 |
14 | 強制將文件寫入磁盤,該文件由文件描述符fd指定,可是不強制更新文件的狀態信息。 |
15 | os.fdopen(fd[, mode[, bufsize]]) 經過文件描述符 fd 建立一個文件對象,並返回這個文件對象 |
16 | 返回一個打開的文件的系統配置信息。name爲檢索的系統配置的值,它也許是一個定義系統值的字符串,這些名字在不少標準中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 |
17 | 返回文件描述符fd的狀態,像stat()。 |
18 | 返回包含文件描述符fd的文件的文件系統的信息,Python 3.3 相等於 statvfs()。 |
19 | 強制將文件描述符爲fd的文件寫入硬盤。 |
20 | 裁剪文件描述符fd對應的文件, 因此它最大不能超過文件大小。 |
21 | 返回當前工做目錄 |
22 | 返回一個當前工做目錄的Unicode對象 |
23 | 若是文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 不然False。 |
24 | 設置路徑的標記爲數字標記,相似 chflags(),可是沒有軟連接 |
25 | 修改鏈接文件權限 |
26 | 更改文件全部者,相似 chown,可是不追蹤連接。 |
27 | 建立硬連接,名爲參數 dst,指向參數 src |
28 | 返回path指定的文件夾包含的文件或文件夾的名字的列表。 |
29 | 設置文件描述符 fd當前位置爲pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效 |
30 | 像stat(),可是沒有軟連接 |
31 | 從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field)。 |
32 | 以major和minor設備號組成一個原始設備號 |
33 | 遞歸文件夾建立函數。像mkdir(), 但建立的全部intermediate-level文件夾須要包含子文件夾。 |
34 | 從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field )。 |
35 | 以數字mode的mode建立一個名爲path的文件夾.默認的 mode 是 0777 (八進制)。 |
36 | 建立命名管道,mode 爲數字,默認爲 0666 (八進制) |
37 | os.mknod(filename[, mode=0600, device]) |
38 | 打開一個文件,而且設置須要的打開選項,mode參數是可選的 |
39 | 打開一個新的僞終端對。返回 pty 和 tty的文件描述符。 |
40 | 返回相關文件的系統配置信息。 |
41 | 建立一個管道. 返回一對文件描述符(r, w) 分別爲讀和寫 |
42 | os.popen(command[, mode[, bufsize]]) 從一個 command 打開一個管道 |
43 | 從文件描述符 fd 中讀取最多 n 個字節,返回包含讀取字節的字符串,文件描述符 fd對應文件已達到結尾, 返回一個空字符串。 |
44 | 返回軟連接所指向的文件 |
45 | 刪除路徑爲path的文件。若是path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。 |
46 | 遞歸刪除目錄。 |
47 | 重命名文件或目錄,從 src 到 dst |
48 | 遞歸地對目錄進行改名,也能夠對文件進行改名。 |
49 | 刪除path指定的空目錄,若是目錄非空,則拋出一個OSError異常。 |
50 | 獲取path指定的路徑的信息,功能等同於C API中的stat()系統調用。 |
51 | os.stat_float_times([newvalue]) |
52 | 獲取指定路徑的文件系通通計信息 |
53 | 建立一個軟連接 |
54 | 返回與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組 |
55 | 設置與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組爲pg。 |
56 | os.tempnam([dir[, prefix]]) Python3 中已刪除。返回惟一的路徑名用於建立臨時文件。 |
57 | os.tmpfile() Python3 中已刪除。返回一個打開的模式爲(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除。 |
58 | os.tmpnam() Python3 中已刪除。爲建立一個臨時文件返回一個惟一的路徑 |
59 | 返回一個字符串,它表示與文件描述符fd 關聯的終端設備。若是fd 沒有與終端設備關聯,則引起一個異常。 |
60 | 刪除文件路徑 |
61 | 返回指定的path文件的訪問和修改的時間。 |
62 | os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 輸出在文件夾中的文件名經過在樹中游走,向上或者向下。 |
63 | 寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度 |
64 | 獲取文件的屬性信息。 |
65 | 獲取當前目錄的父目錄,以字符串形式顯示目錄名。 |
os.path 模塊主要用於獲取文件的屬性。
如下是 os.path 模塊的幾種經常使用方法:
方法 | 說明 |
---|---|
os.path.abspath(path) | 返回絕對路徑 |
os.path.basename(path) | 返回文件名 |
os.path.commonprefix(list) | 返回list(多個路徑)中,全部path共有的最長的路徑 |
os.path.dirname(path) | 返回文件路徑 |
os.path.exists(path) | 路徑存在則返回True,路徑損壞返回False |
os.path.lexists | 路徑存在則返回True,路徑損壞也返回True |
os.path.expanduser(path) | 把path中包含的"~"和"~user"轉換成用戶目錄 |
os.path.expandvars(path) | 根據環境變量的值替換path中包含的"$name"和"${name}" |
os.path.getatime(path) | 返回最近訪問時間(浮點型秒數) |
os.path.getmtime(path) | 返回最近文件修改時間 |
os.path.getctime(path) | 返回文件 path 建立時間 |
os.path.getsize(path) | 返回文件大小,若是文件不存在就返回錯誤 |
os.path.isabs(path) | 判斷是否爲絕對路徑 |
os.path.isfile(path) | 判斷路徑是否爲文件 |
os.path.isdir(path) | 判斷路徑是否爲目錄 |
os.path.islink(path) | 判斷路徑是否爲連接 |
os.path.ismount(path) | 判斷路徑是否爲掛載點 |
os.path.join(path1[, path2[, ...]]) | 把目錄和文件名合成一個路徑 |
os.path.normcase(path) | 轉換path的大小寫和斜槓 |
os.path.normpath(path) | 規範path字符串形式 |
os.path.realpath(path) | 返回path的真實路徑 |
os.path.relpath(path[, start]) | 從start開始計算相對路徑 |
os.path.samefile(path1, path2) | 判斷目錄或文件是否相同 |
os.path.sameopenfile(fp1, fp2) | 判斷fp1和fp2是否指向同一文件 |
os.path.samestat(stat1, stat2) | 判斷stat tuple stat1和stat2是否指向同一個文件 |
os.path.split(path) | 把路徑分割成 dirname 和 basename,返回一個元組 |
os.path.splitdrive(path) | 通常用在 windows 下,返回驅動器名和路徑組成的元組 |
os.path.splitext(path) | 分割路徑中的文件名與拓展名 |
os.path.splitunc(path) | 把路徑分割爲加載點與文件 |
os.path.walk(path, visit, arg) | 遍歷path,進入每一個目錄都調用visit函數,visit函數必須有3個參數(arg, dirname, names),dirname表示當前目錄的目錄名,names表明當前目錄下的全部文件名,args則爲walk的第三個參數 |
os.path.supports_unicode_filenames | 設置是否支持unicode路徑名 |