1. 程式人生 > >python3模塊: os

python3模塊: os

硬鏈接 使用 分隔符 元素 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