python3模塊: os
阿新 • • 發佈:2018-04-18
硬鏈接 使用 分隔符 元素 environ 指示 元組 不能 ==
簡介
- os模塊主要用於提供系統高級別的操作。
常用方法
os.access(path, mode) # 檢驗權限模式 os.chdir(path) # 改變當前工作目錄 os.chflags(path, flags) # 設置路徑的標記為數字標記。 os.chmod(path, mode) # 更改權限 os.chown(path, uid, gid) # 更改文件所有者 os.chroot(path) # 改變當前進程的根目錄 os.close(fd) # 關閉文件描述符 fd os.closerange(fd_low, fd_high) # 關閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略 os.curdir # 返回當前目錄:(‘.‘) os.dup(fd) # 復制文件描述符 fd os.dup2(fd, fd2) # 將一個文件描述符 fd 復制到另一個 fd2 os.environ # 獲取系統環境變量 os.fchdir(fd) # 通過文件描述符改變當前工作目錄 os.fchmod(fd, mode) # 改變一個文件的訪問權限,該文件由參數fd指定,參數mode是Unix下的文件訪問權限。 os.fchown(fd, uid, gid) # 修改一個文件的所有權,這個函數修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。 os.fdatasync(fd) # 強制將文件寫入磁盤,該文件由文件描述符fd指定,但是不強制更新文件的狀態信息。 os.fdopen(fd[, mode[, bufsize]]) # 通過文件描述符 fd 創建一個文件對象,並返回這個文件對象 os.fpathconf(fd, name) # 返回一個打開的文件的系統配置信息。name為檢索的系統配置的值,它也許是一個定義系統值的字符串,這些名字在很多標準中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 os.fstat(fd) # 返回文件描述符fd的狀態,像stat()。 os.fstatvfs(fd) # 返回包含文件描述符fd的文件的文件系統的信息,像 statvfs() os.fsync(fd) # 強制將文件描述符為fd的文件寫入硬盤。 os.ftruncate(fd, length) # 裁剪文件描述符fd對應的文件, 所以它最大不能超過文件大小。 os.getcwd() # 返回當前工作目錄 os.getcwdu() # 返回一個當前工作目錄的Unicode對象 os.isatty(fd) # 如果文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 否則False。 os.lchflags(path, flags) # 設置路徑的標記為數字標記,類似 chflags(),但是沒有軟鏈接 os.lchmod(path, mode) # 修改連接文件權限 os.lchown(path, uid, gid) # 更改文件所有者,類似 chown,但是不追蹤鏈接。 os.link(src, dst) # 創建硬鏈接,名為參數 dst,指向參數 src os.listdir(path) # 返回path指定的文件夾包含的文件或文件夾的名字的列表。 os.lseek(fd, pos, how) # 設置文件描述符 fd當前位置為pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效 os.lstat(path) # 像stat(),但是沒有軟鏈接 os.linesep # 當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" os.major(device) # 從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field)。 os.makedev(major, minor) # 以major和minor設備號組成一個原始設備號 os.makedirs(path[, mode]) # 遞歸文件夾創建函數。像mkdir(), 但創建的所有intermediate-level文件夾需要包含子文件夾。 os.minor(device) # 從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field )。 os.mkdir(path[, mode]) # 以數字mode的mode創建一個名為path的文件夾.默認的 mode 是 0777 (八進制)。 os.mkfifo(path[, mode]) # 創建命名管道,mode 為數字,默認為 0666 (八進制) os.mknod(filename[, mode=0600, device]) # 創建一個名為filename文件系統節點(文件,設備特別文件或者命名pipe)。 os.open(file, flags[, mode]) # 打開一個文件,並且設置需要的打開選項,mode參數是可選的 os.openpty() # 打開一個新的偽終端對。返回 pty 和 tty的文件描述符。 os.pathconf(path, name) # 返回相關文件的系統配置信息。 os.pathsep # 用於分割文件路徑的字符串 os.pardir # 獲取當前目錄的父目錄字符串名:(‘..‘) os.pipe() # 創建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫 os.popen(command[, mode[, bufsize]]) # 從一個 command 打開一個管道 os.path.abspath(path) # 返回path規範化的絕對路徑 os.path.split(path) # 將path分割成目錄和文件名二元組返回 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.isabs(path) # 如果path是絕對路徑,返回True os.path.isfile(path) # 如果path是一個存在的文件,返回True。否則返回False os.path.isdir(path) # 如果path是一個存在的目錄,則返回True。否則返回False os.path.join(path1[, path2[, ...]]) # 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略 os.path.getatime(path) # 返回path所指向的文件或者目錄的最後存取時間 os.path.getmtime(path) # 返回path所指向的文件或者目錄的最後修改時間 os.name # 字符串指示當前使用平臺。win->‘nt‘; Linux->‘posix‘ os.read(fd, n) # 從文件描述符 fd 中讀取最多 n 個字節,返回包含讀取字節的字符串,文件描述符 fd對應文件已達到結尾, 返回一個空字符串。 os.readlink(path) # 返回軟鏈接所指向的文件 os.remove(path) # 刪除路徑為path的文件。如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。 os.removedirs(path) # 遞歸刪除目錄。若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推 os.rename(src, dst) # 重命名文件或目錄,從 src 到 dst os.renames(old, new) # 遞歸地對目錄進行更名,也可以對文件進行更名。 os.rmdir(path) # 刪除path指定的空目錄,如果目錄非空,則拋出一個OSError異常。 os.sep # 操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" os.stat(path) # 獲取path指定的路徑的信息,功能等同於C API中的stat()系統調用。 os.stat_float_times([newvalue]) # 決定stat_result是否以float對象顯示時間戳 os.statvfs(path) # 獲取指定路徑的文件系統統計信息 os.symlink(src, dst) # 創建一個軟鏈接 os.system("bash command") # 運行shell命令,直接顯示 os.tcgetpgrp(fd) # 返回與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組 os.tcsetpgrp(fd, pg) # 設置與終端fd(一個由os.open()返回的打開的文件描述符)關聯的進程組為pg。 os.tempnam([dir[, prefix]]) # 返回唯一的路徑名用於創建臨時文件。 os.tmpfile() # 返回一個打開的模式為(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除。 os.tmpnam() # 為創建一個臨時文件返回一個唯一的路徑 os.ttyname(fd) # 返回一個字符串,它表示與文件描述符fd 關聯的終端設備。如果fd 沒有與終端設備關聯,則引發一個異常。 os.unlink(path) # 刪除文件路徑 os.utime(path, times) # 返回指定的path文件的訪問和修改的時間。 os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) # 輸出在文件夾中的文件名通過在樹中遊走,向上或者向下。 os.write(fd, str) # 寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度
簡單應用
# 列出當前目錄下的所有目錄
[ x for x in os.listdir(‘.‘) if os.path.isdir(x)]
# 列出當前目錄下所有的.py文件
[ x for x in os.listdir(‘.‘) if os.path.isfile(x) and os.path.splitext(x)[1]==‘.py‘]
- 獲取文件夾大小(目錄)
def getdirsize(dir_name): """ 獲取目錄大小 :param dir_name:目錄的絕對路徑 :return: 目錄的大小 """ size = 0 for root, dirs, files in os.walk(dir_name): for name in files: size += os.path.getsize(os.path.join(root, name)) return size
python3模塊: os