python?文件和路徑操作函數小結(轉載)

想入門python圖像處理,一些涉及到保存路徑的操作,split/splitext/dirname/basename,搜了一些文件路徑操作函數使用方法,mark.

//====//

1: os.listdir(path) //path為目錄

功能相當于在path目錄下執行dir命令,返回為list類型

print os.listdir('..')

2: os.path.walk(path,visit,arg)

path :是將要遍歷的目錄

visit :是一個函數指針,函數圓形為:

callback(arg,dir,fileList)

其中arg為為傳給walk的arg , dir是path下的一個目錄,fileList為dir下的文件和目錄組成的list, arg:傳給visit用的

3:os.path.split(path)

path 為一個路徑,

輸出,把path分成兩部分,具體看實例:

print os.path.split("abc/de.txt")

('abc', 'de.txt')

os.path.split("abc")

(", 'abc')

print os.path.split("de/abc/de")

('de/abc', 'de')

4: os.path.splitext(filename)

把文件名分成文件名稱和擴展名

os.path.splitext(abc/abcd.txt)

('abc/abcd', '.txt')

5: os.path.dirname(path)

把目錄名提出來

print os.path.dirname("abc")

#輸出為空

print os.path.dirname('abc\def')

abc

6: os.path.basename(filename)

取得主文件名

print os.path.basename('abc')

abc

print os.path.basename('abc.txt')

abc

print os.path.basename('bcd/abc')

abc #這個需要注意不包括目錄名稱

print os.path.basename('.')

.

7:os.mkdir(path, [mode])

path為目錄名: 這里有個要求,只能創建一級目錄

比如path為 abc/def 則當前目錄下必須存在abc 否則失敗

8: os.makedirs(path [,mode])

可以創建多級目錄

9:os.remove(path)刪除一個文件,一定是一個文件

os.removedirs(path) 刪除一個目錄下所有東西

os.rmdir(path) 刪除一個目錄,而且一定要空,否則os.errer

10:os.walk(path)

遍歷path,返回一個對象,他的每個部分都是一個三元組

('目錄x',[目錄x下的目錄list],目錄x下面的文件)

舉例:

a = os.walk('.')

for i in a:

print i

11:shutil.copy(src,dst)

把文件src內容拷貝到文件dst中。,目標區域必須可以寫,如果dst存在,則dst被覆蓋

――――――――――――――――――

11.1 os.path -- 普通的路徑名操作

這個模塊實現一些在路徑名稱上有用的函數。

警告:在 Windows 上,這些函數中的多個不能正確地支持 UNC 路徑名。splitunc() 和 ismount() 可以正確地處理它們。

abspath(path)

返回 path 路徑名一個規格化的絕對化的版本。在大多數平臺上,相當于normpath(join(os.getcwd(), path))。1.5.2版本中的新特性。

basename(path)

返回 path 路徑名最底部的名稱。這是由 split(path)返回的對的第二半部分。注意這個函數的結果不同于Unix basename 程序;UNIX的 basename對于'/foo/bar/' 返回 'bar',basename() 函數返回一個空字符串('')。

commonprefix(list)

返回最長的路徑前綴(采取字符的字符),是 list中所有路徑的一個前綴。如果 list 為空,返回空字符串('')。注意可以返回無效的路徑因為它每次操作一個字符。

dirname(path)

返回 path 路徑名的目錄名稱。這是由 split(path)返回的對的第一半部分。

exists(path)

如果 path 與一個已存在的路徑關聯返回True。對于損壞的符號連接返回 False 。在一些平臺上,如果權限沒有被授予在請求的文件上執行os.stat()這個函數可能返回False,即使該 path 實際上存在。

lexists(path)

如果 path 與一個已存在的路徑關聯返回 True 。對于損壞的連接返回 True 。在一些缺少 os.lstat()的平臺上相當于 exists() 。2.4版本中的新特性。

expanduser(path)

在 Unix上,返回 "~"或"~user"做為替換用戶的主目錄的開始部分的參數。開始的"~" 通過環境變量 HOME(如果它被設置)替換; 否則當前用戶的主目錄在口令目錄中通過內置模塊 pwd被查詢。開始的"~user" 直接地在口令目錄中被查詢。

在 Windows 上,僅支持 "~" ;它通過環境變量 HOME 或通過HOMEDRIVE 和 HOMEPATH的組合替換。

如果該擴充失敗或如果該路徑不以一個波浪號開始,被返回的路徑無改變。

expandvars(path)

返回使用環境變量擴充的參數。"$name" 或 "${name}"格式的子串通過環境變量 name 的值被替換。殘缺的變量名稱和引用不存在的變量被無改變的遺棄。

getatime(path)

返回 path 的最后訪問時間。返回的值是一個從新紀元開始的秒數(參見 time 模塊)。如果文件不存在或不可訪問掛起 os.error 。1.5.2版本中的新特性。2.3版本中的改變:如果 os.stat_float_times() 返回True,結果是一個浮點數。

getmtime(path)

返回 path 最后修改的時間。返回值是一個從新紀元開始的秒數(參見 time 模塊)。如果文件不存在或不可訪問掛起 os.error 。1.5.2版本中的新特性。2.3版本中的改變:如果 os.stat_float_times() 返回True,結果是一個浮點數。

getctime(path)

返回系統的 ctime ,在一些系統上 (像Unix) 是最后改變的時間,在其他一些系統上 (像Windows),是 path 創建的時間。返回值是一個從新紀元開始的秒數(參見 time 模塊)。如果文件不存在或不可訪問掛起 os.error 。2.3版本中的新特性。

getsize(path)

以字節為單位,返回 path 的大小。如果文件不存在或不可訪問掛起 os.error 。1.5.2版本中的新特性。

isabs(path)

如果 path 是一個絕對路徑名返回True (以一個斜杠開始)。

isfile(path)

如果 path 是一個已存在的普通文件返回True 。這效仿符號連接,因此 islink() 和 isfile() 對于相同的路徑都可以返回 true 。

isdir(path)

如果 path 是一個已存在的目錄返回 True 。這效仿符號鏈接,因此 islink() 和 isdir() 對于相同的路徑都可以返回 true 。

islink(path)

如果 path 引用一個目錄項,它是一個符號連接,返回True。如果不支持符號連接始終返回 False 。

ismount(path)

如果路徑名 path是一個 掛載點 返回 True :在文件系統中的那個點一個不同的文件系統已經被掛載。這個函數檢測是否 path的父路徑, path/..,和 path 是一個不同的設備,或是否 path/.. 和 path 在相同的設備上指向相同的i-node -- 這應該是為所有的 Unix 和 POSIX 變種檢測掛載點。

join(path1[, path2[, ...]])

智能化地連接一個或多個路徑組件。如果任一組件是一個絕對路徑,所有前面的組件被丟棄(在Windows 上,包括前面的驅動器名,如果有) ,并且繼續連接。返回的值是 path1,和可選地 path2等的組合,正確地以一個目錄分隔符 (os.sep)插入到兩個組件之間,除非 path2 為空。注意在 Windows 上,因為每個驅動器有一個當前目錄,os.path.join("c:", "foo")表示相對于驅動器 C: 上的當前目錄的一個路徑(c:foo),而不是 c:\\foo。

normcase(path)

標準化一個路徑名的大小寫。在Unix上,返回未改變的路徑;在不區分大小寫的文件系統上,它轉換路徑為小寫字母。在Windows上 ,它也轉換正斜杠為反斜杠。

normpath(path)

標準化一個路徑名。折疊多余(或冗長的)分隔符并且定位于外層引用,以致于 A//B,A/./B 和 A/foo/../B 都變成 A/B。它不標準化大小寫(標準化大小寫用 normcase())。在Windows上,它轉換正斜杠為反斜杠。如果它包含符號連接,它應該明白這可能改變路徑的意圖!

realpath(path)

返回指定的文件名標準的路徑,除去在路徑中遇到的任何符號連接(如果操作系統支持)。2.2版本中的新特性。

samefile(path1, path2)

如果路徑名參數與相同的文件或目錄關聯返回 True (通過設備號和 i-node 數表示)。如果 os.stat() 調用每個路徑名失敗掛起一個異常。有效的:Macintosh,Unix。

sameopenfile(fp1, fp2)

如果文件描述符 fp1 和 fp2 與相同的文件關連返回 True 。有效的:Macintosh,Unix。

samestat(stat1, stat2)

如果 stat 元組 stat1和stat2 與相同的文件關連返回 True 。這個結構可能由fstat(),lstat(),或stat()返回。這個函數使用samefile() 和 sameopenfile()實現了基本的比較。有效的:Macintosh,Unix。

split(path)

分割路徑名 path 到一個對中,(head, tail)中 tail 是最后的路徑名組件head 是引導它的任何事物。tail 部分將一直都不包括斜線;如果 path 以一個斜線結尾,tail 將為空。如果 path 中沒有斜線,head 將為空。如果 path 為空,head 和 tail 都為空。尾隨斜線從 head 中被去除,除非它是根(one or more slashes only)。在幾乎所有的情況中,join(head, tail) 相當于 path (只有一個例外是當從 tail 中 head 被多個斜線分割時)。

splitdrive(path)

分割路徑名 path 到一個(drive, tail) 對中,drive 是每個驅動器的說明或空字符串。在系統上不使用驅動器說明的,drive 將一直是空字符。在所有情況中,drive + tail 將和 path 相同。1.3版本中的新特性。

splitext(path)

分割路徑名 path 到一對 (root, ext) 中以致 root + ext == path,并且ext 為空或以一個句點開始并且只多包含一個句點。

splitunc(path)

分割路徑名 path 到一個對(unc, rest)中以便于 unc 是 UNC 掛載點 (諸如 r'\\host\mount'),如果,并且 rest 路徑的其余部分(諸如 r'\path\file.ext')。對于路徑包含驅動器名,unc 將一直是空字符。有效的:Windows。

walk(path, visit, arg)

對于以 path 為根的目錄樹中的每一個目錄 (包含 path 自身,如果它是一個目錄),以參數 (arg, dirname, names)調用函數 visit 。參數 dirname 指定訪問的目錄,參數 names 列出在目錄中的文件(從 os.listdir(dirname)中得到)。visit 函數可以修改 names 改變 dirname 下面訪問的目錄的設置,例如,避免訪問樹的某一部分。(由 names 關連的對象必須在合適的位置被修改,使用 del 或 slice 指派。)

注意:符號連接到目錄不被作為一個子目錄處理,并且因此 walk()將不訪問它們。訪問連接的目錄你必須以os.path.islink(file) 和 os.path.isdir(file)標識它們,并且必須調用walk() 。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,775評論 18 139
  • os.path.abspath(path) #返回絕對路徑 os.path.basename(path) #返回文...
    qtruip閱讀 2,963評論 1 4
  • os模塊簡介: OS模塊是Python標準庫中的一個用于訪問操作系統功能的模塊,OS模塊提供了一種可移...
    翟振光閱讀 5,007評論 0 6
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,477評論 0 17
  • Pythos中調用操作系統的模塊,提供對操作系統進行調用的接口 API方法 os.getcwd() 獲取當前工作目...
    So_ProbuING閱讀 2,285評論 0 4