Python 内置模块之 os
生活随笔
收集整理的這篇文章主要介紹了
Python 内置模块之 os
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
os.walk
os.walk() 方法是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。簡單來說,就是挨個遍歷指定路徑下的目錄(文件夾)和文件。用于通過在目錄樹中游走輸出在目錄中的目錄名,文件名在Unix,Windows中有效。
要使用os.walk,首先要載入該函數,可以使用以下兩種方法
- import os
- from os import walk
語法
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
參數
- top:? 是你所要遍歷的目錄的地址
- topdown:? 可選,為 True,則優先遍歷 top 目錄,否則優先遍歷 top 的子目錄(默認為開啟)。如果 topdown 參數為 True,walk 會遍歷top文件夾,與top 文件夾中每一個子目錄。
- onerror:? 可選, 需要一個 callable 對象,當 walk 需要異常時,會調用。
- followlinks:? 可選, 如果為 True,則會遍歷目錄下的快捷方式(linux 下是 symbolic link)實際所指的目錄(默認關閉)。
返回值
os.walk 的返回值是一個生成器(generator),也就是說我們需要遍歷它,來獲得所有的內容。每次遍歷的對象都是返回的是一個三元組(root,dirs,files)
- root 所指的是當前正在遍歷的這個文件夾的本身的地址
- dirs 是一個list,內容是該文件夾中所有的目錄的名字(不包括子目錄)
- files 同樣是list,內容是該文件夾中所有的文件(不包括子目錄)如果topdown 參數為真,walk 會遍歷top文件夾,與top文件夾中每一個子目錄。
實例
#!/usr/bin/python # -*- coding: UTF-8 -*- import os for root, dirs, files in os.walk(".", topdown=False):print(dirs)print(files)# 第二次,第三次循環的是當前目錄下的dirs1,dirs2文件夾,執行以上程序輸出結果為: ['dirs1', 'dirs2'] ['f1', 'f2', 'f3'] [] ['dirs1_f1',dirs1_2] [] ['dirs2_f1',dirs2_2]os.path
官方文檔:http://docs.python.org/library/os.path.html
下列所列文件路徑為’/home/flp/abc.txt’
| os.path.abspath(path) | 返回絕對路徑(‘/home/flp/abc.txt’) |
| os.path.basename(path) | 返回文件名(‘abc.txt’) |
| os.path.commonprefix(list) | 返回list(多個路徑)中,所有path共有的最長的路徑 |
| os.path.dirname(path) | 返回文件路徑(‘/home/flp’) |
| os.path.exists(path) | 如果路徑 path 存在,返回 True;如果路徑 path 不存在,返回 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.join(‘/home/flp’,’abc.txt’) |
| 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,返回一個元組,如(‘/home/flp’,’abc.txt’) |
| os.path.splitdrive(path) | 一般用在 windows 下,返回驅動器名和路徑組成的元組 |
| os.path.splitext(path) | 分割路徑,返回路徑名和文件擴展名的元組(‘/home/flp/abc’,’txt’) |
| 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路徑名 |
os.stat
os.stat(‘path/filename’)
獲取文件/目錄信息?的結構說明
print(os.stat(c:abc)) # os.stat_result(st_mode=16895, st_ino=11821949022186825, st_dev=3303659261, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1547435238, st_mtime=1547435238, st_ctime=1543997539)stat 結構:st_mode: inode 保護模式st_ino: inode 節點號。st_dev: inode 駐留的設備。st_nlink: inode 的鏈接數。st_uid: 所有者的用戶ID。st_gid: 所有者的組ID。st_size: 普通文件以字節為單位的大小;包含等待某些特殊文件的數據。st_atime: 上次訪問的時間。st_mtime: 最后一次修改的時間。st_ctime: 由操作系統報告的"ctime"。在某些系統上(如Unix)是最新的元數據更改的時間,在其它系統上(如Windows)是創建時間(詳細信息參見平臺的文檔)。os屬性
os.sep # 輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" os.linesep # 輸出當前平臺使用的行終止符,win下為"\r\n",Linux下為"\n" os.pathsep # 輸出用于分割文件路徑的字符串 win下為;,Linux下為: os.name # 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'os其他
os.makedirs('dirname1/dirname2') # 可生成多層遞歸目錄 os.removedirs('dirname1') # 若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推 os.mkdir('dirname') # 生成單級目錄;相當于shell中mkdir dirname os.rmdir('dirname') # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當于shell中rmdir dirname os.listdir('dirname') # 列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印 os.remove() # 刪除一個文件 os.rename("oldname","newname") # 重命名文件/目錄 os.stat('path/filename') # 獲取文件/目錄信息os.system("bash command") # 運行shell命令,直接顯示,或運行cmd命令,無返回值 os.popen("bash command).read() # 運行shell命令,返回執行結果 os.getcwd() # 獲取當前工作目錄,即當前python腳本工作的目錄路徑 os.chdir("dirname") # 改變當前腳本工作目錄;相當于shell下cd?
總結
以上是生活随笔為你收集整理的Python 内置模块之 os的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PDF417码的坑
- 下一篇: opencv安装教程python3.7_