os os.path模塊

#當(dāng)前文件的路徑

pwd?=?os.getcwd()

#當(dāng)前文件的父路徑

father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+".")

#當(dāng)前文件的前兩級(jí)目錄

grader_father=os.path.abspath(os.path.dirname(pwd)+os.path.sep+"..")


最近看到python的os模塊塞赂,以及os,os.path的具體用法,有些不明白晃听,在此記錄一下稠项。?

python獲取文件的上一級(jí)目錄:取文件所在目錄的上一級(jí)目錄?

os.path.pardir:是父目錄天揖,?

os.path.abspath:是獲取絕對(duì)路徑?


import os ,os.path

os.path.abspath("__file__") # 獲取當(dāng)前文件的絕對(duì)路徑

os.path.dirname(os.path.abspath("__file__")) # 獲取當(dāng)前文件所在的目錄名稱

?os.path.pardir # 獲取相對(duì)于文件當(dāng)前目錄的上級(jí)目錄

print os.path.abspath(os.path.pardir) # 獲取相對(duì)于文件當(dāng)前目錄的上級(jí)目錄的絕對(duì)路徑print os.path.join(os.path.dirname("__file__"),os.path.pardir) # 將文件的當(dāng)前目錄和文件當(dāng)前目錄的上級(jí)目錄進(jìn)行合并,取交集print os.path.abspath(os.path.join(os.path.dirname("__file__"),os.path.pardir))# 對(duì)應(yīng)的輸出為:D:\Python\__file__

D:\Python

..? #? “..”這是上級(jí)目錄的表示方法D:\

..? # 取 D:\Python\__file__ 和 D:\的交集谓罗,就是D:\,也就是".."季二,還是os.path.pardir的值檩咱。也就是文件當(dāng)前目錄的上一級(jí)(父級(jí))目錄。D:\? # 也就是獲取".."的絕對(duì)路徑胯舷。

還有幾個(gè)常見的命令:?

python中對(duì)文件刻蚯、文件夾(文件操作函數(shù))的操作需要涉及到os模塊和shutil模塊。?

得到當(dāng)前工作目錄桑嘶,即當(dāng)前Python腳本工作的目錄路徑: os.getcwd()?

返回指定目錄下的所有文件和目錄名:os.listdir()?

函數(shù)用來刪除一個(gè)文件:os.remove()?

刪除多個(gè)目錄:os.removedirs(r“c:\python”)?

檢驗(yàn)給出的路徑是否是一個(gè)文件:os.path.isfile()?

檢驗(yàn)給出的路徑是否是一個(gè)目錄:os.path.isdir()?

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

檢驗(yàn)給出的路徑是否真地存:os.path.exists()?

返回一個(gè)路徑的目錄名和文件名:os.path.split() eg os.path.split(‘/home/swaroop/byte/code/poem.txt’) 結(jié)果:(‘/home/swaroop/byte/code’, ‘poem.txt’)

分離擴(kuò)展名:os.path.splitext()?

獲取路徑名:os.path.dirname()?

獲取文件名:os.path.basename()?

運(yùn)行shell命令: os.system()?

讀取和設(shè)置環(huán)境變量:os.getenv() 與os.putenv()?

給出當(dāng)前平臺(tái)使用的行終止符:os.linesep Windows使用’\r\n’炊汹,Linux使用’\n’而Mac使用’\r’?

指示你正在使用的平臺(tái):os.name 對(duì)于Windows,它是’nt’逃顶,而對(duì)于Linux/Unix用戶讨便,它是’posix’?

重命名:os.rename(old充甚, new)?

創(chuàng)建多級(jí)目錄:os.makedirs(r“c:\python\test”)?

創(chuàng)建單個(gè)目錄:os.mkdir(“test”)?

獲取文件屬性:os.stat(file)?

修改文件權(quán)限與時(shí)間戳:os.chmod(file)?

終止當(dāng)前進(jìn)程:os.exit()?

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

參考網(wǎng)址:http://blog.csdn.net/longshenlmj/article/details/13294871

下面結(jié)合具體的代碼來解釋一下它們的應(yīng)用:

importos霸褒,os.pathasosp

def? check_dir(path):

""" make sure the dir specified by path got created """

d = osp.abspath(osp.join(path, osp.pardir))

ifnotosp.exists(d):? ? ? ??

os.makedirs(d)


情況1:在一個(gè)目錄下面只有文件津坑,沒有文件夾,這個(gè)時(shí)候可以使用os.listdir

import os

path = r'C:\Users\Administrator\Desktop\file'forfilenamein os.listdir(path):

? ? print(os.path.join(path,filename))

情況2:遞歸的情況傲霸,一個(gè)目錄下面既有目錄也有文件疆瑰,使用os.walk:

import os

path = r'C:\Users\Administrator\Desktop\file'fordirpath,dirnames,filenamesin os.walk(path):

? ? print(dirpath,dirnames,filenames)

os.walk輸入一個(gè)路徑名稱,以yield的方式(其實(shí)是一個(gè)生成器)返回一個(gè)三元組?dirpath, dirnames, filenames昙啄,

dirpath為目錄的路徑穆役,為一個(gè)字符串。比如上面的?C:\Users\Administrator\Desktop\file和C:\Users\Administrator\Desktop\file\file1等梳凛。

dirnames列出了目錄路徑下面所有存在的目錄的名稱耿币。比如在?C:\Users\Administrator\Desktop\file下面有兩個(gè)目錄:file1和file2,那么它就列出了這個(gè)目錄路徑下的目錄名稱韧拒。

filenames列出了目錄路徑下面所有文件的名稱淹接。同樣在?C:\Users\Administrator\Desktop\file下面有兩個(gè)文件file_test1.txt和file_test2 .txt,那么程序?qū)?huì)列出這兩個(gè)文件名叛溢。

import os

path = r'C:\Users\Administrator\Desktop\file'fordirpath,dirnames,filenamesin os.walk(path):

? ? forfilenamein filenames:

? ? ? ? print(os.path.join(dirpath,filename))



python中os.path常用模塊


os.path.sep:路徑分隔符 linux下就用這個(gè)了’/’

os.path.altsep: 根目錄

os.path.curdir:當(dāng)前目錄

os.path.pardir:父目錄

os.path.abspath(path):絕對(duì)路徑

os.path.join(): 常用來鏈接路徑

os.path.split(path): 把path分為目錄和文件兩個(gè)部分塑悼,以列表返回

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市楷掉,隨后出現(xiàn)的幾起案子厢蒜,更是在濱河造成了極大的恐慌,老刑警劉巖烹植,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斑鸦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡草雕,警方通過查閱死者的電腦和手機(jī)巷屿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墩虹,“玉大人嘱巾,你說我怎么就攤上這事“芮纾” “怎么了浓冒?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)尖坤。 經(jīng)常有香客問我稳懒,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任场梆,我火速辦了婚禮墅冷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘或油。我一直安慰自己寞忿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布顶岸。 她就那樣靜靜地躺著腔彰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辖佣。 梳的紋絲不亂的頭發(fā)上霹抛,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音卷谈,去河邊找鬼杯拐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛世蔗,可吹牛的內(nèi)容都是我干的端逼。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼污淋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼顶滩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芙沥,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤诲祸,失蹤者是張志新(化名)和其女友劉穎浊吏,沒想到半個(gè)月后而昨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡找田,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年歌憨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墩衙。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡务嫡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漆改,到底是詐尸還是另有隱情心铃,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布挫剑,位于F島的核電站去扣,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏樊破。R本人自食惡果不足惜愉棱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一唆铐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奔滑,春花似錦艾岂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梅猿,卻和暖如春叼耙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粒没。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工筛婉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人癞松。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓爽撒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親响蓉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子硕勿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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