14、python 操作文件之os模塊使用總結(jié)

1.python實(shí)現(xiàn)文件夾遍歷

python 中os.path模塊用于操作文件或文件夾

os.path.exists(path) 判斷文件路徑是否存在

dir = "c:\windows"
if os.path.exists(dir) :
  print "dir exists"
else :
  print "no exists"

os.path.isfile(path) 判斷path是否是文件

dir = "c:\windows\system32\cmd.exe"
if os.path.isfile(dir) :
  print "file exists"
else :
  print "no exists"

os.path.getsize(path) 獲取path文件的大小

size = os.path.getsize(dir)
print size/1024

os.path.walk(path) 遍歷path蚣旱,返回一個(gè)三元組(dirpath, dirnames, filenames). dirpath表示遍歷到的路徑, dirnames表示該路徑下的子目錄名,是一個(gè)列表, filesnames表示該路徑下的文件名戴陡,也是一個(gè)列表. 例如: 當(dāng)遍歷到c:\windows時(shí)塞绿,dirpath="c:\windows", dirnames是這個(gè)路徑下所有子目錄名的列表,dirnames是這個(gè)路徑下所有文件名的列表

for (root, dirs, files) in os.walk("C:\windows"):  列出windows目錄下的所有文件和文件名
  for filename in files:
    print os.path.join(root,filename)

  for dirc in dirs:

    print os.path.join(root,dirc)

問題 1 獲取給定文件夾的大小?

要遍歷文件的大小恤批,只需要遍歷文件內(nèi)的所有文件异吻,然后將所有文件夾的大小加起來

def getDirSzie(dir) :
for (root,dirs,files) in os.walk(dir,False) :
  Size = 0
  for filename in files :
    Size += os.path.getsize(os.path.join(root,filename))
  print root,Size/1024

問題 2 遍歷一個(gè)文件夾的子目錄,不遍歷子目錄的字目錄喜庞?

os.listdir(path) 函數(shù)列出指定目錄下的文件和文件夾

dir = 'c:/windows'
if os.path.exists(dir):
  dirs = os.listdir(dir)
  for dirc in dirs:
    print dirc
else :
  print "dir not exists"

問題3 刪除指定目錄下空的目錄

for (root, dirs, files) in os.walk(path) :
  for item in dirs :
    dir = os.path.join(root, item)
    try :
      print dir
      os.rmdir(dir)
    except :
      pass

問題4 修改指定目錄下所有文件的文件后綴

for (root,dirs,files) in os.walk(path) :
  for item in files :
    d = os.path.join(root, item)
    name = d + ".eml"
    os.rename(d, name)

2.python遍歷文件夾下的文件

在讀文件的時(shí)候往往需要遍歷文件夾诀浪,python的os.path包含了很多文件、文件夾操作的方法延都。下面列出:

os.path.abspath(path) #返回絕對(duì)路徑

os.path.basename(path) #返回文件名

os.path.commonprefix(list) #返回多個(gè)路徑中雷猪,所有path共有的最長(zhǎng)的路徑。

os.path.dirname(path) #返回文件路徑

os.path.exists(path)  #路徑存在則返回True,路徑損壞返回False

os.path.lexists  #路徑存在則返回True,路徑損壞也返回True

os.path.expanduser(path)  #把path中包含的"~"和"~user"轉(zhuǎn)換成用戶目錄

os.path.expandvars(path)  #根據(jù)環(huán)境變量的值替換path中包含的”$name”和”${name}”

os.path.getatime(path)  #返回最后一次進(jìn)入此path的時(shí)間晰房。

os.path.getmtime(path)  #返回在此path下最后一次修改的時(shí)間求摇。

os.path.getctime(path)  #返回path的大小

os.path.getsize(path)  #返回文件大小射沟,如果文件不存在就返回錯(cuò)誤

os.path.isabs(path)  #判斷是否為絕對(duì)路徑

os.path.isfile(path)  #判斷路徑是否為文件

os.path.isdir(path)  #判斷路徑是否為目錄

os.path.islink(path)  #判斷路徑是否為鏈接

os.path.ismount(path)  #判斷路徑是否為掛載點(diǎn)()

os.path.join(path1[, path2[, ...]])  #把目錄和文件名合成一個(gè)路徑

os.path.normcase(path)  #轉(zhuǎn)換path的大小寫和斜杠

os.path.normpath(path)  #規(guī)范path字符串形式

os.path.realpath(path)  #返回path的真實(shí)路徑

os.path.relpath(path[, start])  #從start開始計(jì)算相對(duì)路徑

os.path.samefile(path1, path2)  #判斷目錄或文件是否相同

os.path.sameopenfile(fp1, fp2)  #判斷fp1和fp2是否指向同一文件

os.path.samestat(stat1, stat2)  #判斷stat tuple stat1和stat2是否指向同一個(gè)文件

os.path.split(path)  #把路徑分割成dirname和basename,返回一個(gè)元組

os.path.splitdrive(path)   #一般用在windows下与境,返回驅(qū)動(dòng)器名和路徑組成的元組

os.path.splitext(path)  #分割路徑验夯,返回路徑名和文件擴(kuò)展名的元組

os.path.splitunc(path)  #把路徑分割為加載點(diǎn)與文件

os.path.walk(path, visit, arg)  #遍歷path,進(jìn)入每個(gè)目錄都調(diào)用visit函數(shù)摔刁,visit函數(shù)必須有3個(gè)參數(shù)(arg, dirname, names)挥转,dirname表示當(dāng)前目錄的目錄名,names代表當(dāng)前目錄下的所有文件名共屈,args則為walk的第三個(gè)參數(shù)

os.path.supports_unicode_filenames  #設(shè)置是否支持unicode路徑名

下面給出一種遍歷的實(shí)現(xiàn):

rootdir = 'F:\data'
list = os.listdir(rootdir) #列出文件夾下所有的目錄與文件
for i in range(0,len(list)):
       path = os.path.join(rootdir,list[i])
       if os.path.isfile(path):
              #你想對(duì)文件的操作
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绑谣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子趁俊,更是在濱河造成了極大的恐慌域仇,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寺擂,死亡現(xiàn)場(chǎng)離奇詭異暇务,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怔软,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門垦细,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挡逼,你說我怎么就攤上這事括改。” “怎么了家坎?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵嘱能,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我虱疏,道長(zhǎng)惹骂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任做瞪,我火速辦了婚禮对粪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘装蓬。我一直安慰自己著拭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布牍帚。 她就那樣靜靜地躺著儡遮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暗赶。 梳的紋絲不亂的頭發(fā)上峦萎,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天屡久,我揣著相機(jī)與錄音,去河邊找鬼爱榔。 笑死被环,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的详幽。 我是一名探鬼主播筛欢,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼唇聘!你這毒婦竟也來了版姑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤迟郎,失蹤者是張志新(化名)和其女友劉穎剥险,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪肖,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡表制,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了控乾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片么介。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜕衡,靈堂內(nèi)的尸體忽然破棺而出壤短,到底是詐尸還是另有隱情,我是刑警寧澤慨仿,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布久脯,位于F島的核電站,受9級(jí)特大地震影響镰吆,放射性物質(zhì)發(fā)生泄漏桶现。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一鼎姊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧相赁,春花似錦相寇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绵脯,卻和暖如春佳励,著一層夾襖步出監(jiān)牢的瞬間休里,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工赃承, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妙黍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓瞧剖,卻偏偏與公主長(zhǎng)得像拭嫁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抓于,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • python獲取文件上一級(jí)目錄:取文件所在目錄的上一級(jí)目錄 os.path.abspath(os.path.joi...
    朝畫夕拾閱讀 7,719評(píng)論 0 2
  • #當(dāng)前文件的路徑 pwd=os.getcwd() #當(dāng)前文件的父路徑 father_path=os.path.ab...
    朝畫夕拾閱讀 3,948評(píng)論 0 1
  • 一、os介紹 os模塊主要是對(duì)操作執(zhí)行執(zhí)行操作巾遭,導(dǎo)入方法:import os 二肉康、os.path模塊的基本操作 1...
    rr1990閱讀 472評(píng)論 0 0
  • 一、目錄遍歷 os 用于獲取系統(tǒng)的功能恢总,主要用于操作文件或者文件夾代碼演示:import ospath = r...
    hollow_02f9閱讀 1,565評(píng)論 0 0
  • 20190828 工作地 落寞失神迎罗,我想說我有點(diǎn)難過,為不可期的未來片仿,怎么辦呢纹安? 上午折騰網(wǎng)絡(luò),突然想起第一次來砂豌,...
    靜夜思6820閱讀 112評(píng)論 0 2