Python os模塊介紹
os.getcwd() 獲取當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑
os.chdir("dirname") 改變當(dāng)前腳本工作目錄;相當(dāng)于shell下cd
os.curdir 返回當(dāng)前目錄: ('.')
os.pardir 獲取當(dāng)前目錄的父目錄字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄
os.removedirs('dirname1') 若目錄為空,則刪除,并遞歸到上一級(jí)目錄,如若也為空,則刪除,依此類(lèi)推
os.mkdir('dirname') 生成單級(jí)目錄;相當(dāng)于shell中mkdir dirname
os.rmdir('dirname') 刪除單級(jí)空目錄,若目錄不為空則無(wú)法刪除,報(bào)錯(cuò);相當(dāng)于shell中rmdir dirname
os.listdir('dirname') 列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印
os.remove() 刪除一個(gè)文件
os.rename("oldname","newname") 重命名文件/目錄
os.stat('path/filename') 獲取文件/目錄信息
os.symlink('path/filename','ln_filename') 創(chuàng)建符號(hào)鏈接,源需絕對(duì)路徑
os.utime() 修改時(shí)間屬性
>>> import os
>>> stinfo = os.stat('c.py')
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448908.0
modified time of c.py: 1369735909.0
>>> os.utime('c.py',(1375448978,1369735977))
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448908.0
modified time of c.py: 1369735909.0
退出Python交互模式,再次進(jìn)入
>>> import os
>>> stinfo = os.stat('c.py')
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448978.0
modified time of c.py: 1369735977.0
os.walk() 生成一個(gè)目錄樹(shù)下的所有文件名
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
- top表示需要遍歷的目錄樹(shù)的路徑
- topdown的默認(rèn)值是”True”,表示首先返回目錄樹(shù)下的文件,然后在遍歷目錄樹(shù)的子目錄.Topdown的值為”False”時(shí),則表示先遍歷目錄樹(shù)的子目錄,返回子目錄下的文件,最后返回根目錄下的文件
- onerror的默認(rèn)值是”None”,表示忽略文件遍歷時(shí)產(chǎn)生的錯(cuò)誤.如果不為空,則提供一個(gè)自定義函數(shù)提示錯(cuò)誤信息后繼續(xù)遍歷或拋出異常中止遍歷
該函數(shù)返回一個(gè)元組,該元組有3個(gè)元素,這3個(gè)元素分別表示每次遍歷的路徑名,目錄列表和文件列表
os.walk()舉例:
>>> import os >>> for root, dirs, files in os.walk("wd/chat", topdown=False): ... for name in files: ... print(os.path.join(root, name)) #打印文件絕對(duì)路徑 ... for name in dirs: ... print(os.path.join(root, name)) #打印目錄絕對(duì)路徑 ...
os.tmpfile() 創(chuàng)建并打開(kāi)‘w+b'一個(gè)新的臨時(shí)文件
os.sep 輸出操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/"
os.linesep 輸出當(dāng)前平臺(tái)使用的行終止符,win下為"\t\n",Linux下為"\n"
os.pathsep 輸出用于分割文件路徑的字符串
os.name 輸出字符串指示當(dāng)前使用平臺(tái)。win->'nt'; Linux->'posix'
os.system("bash command") 運(yùn)行shell命令,直接顯示
os.popen("bash command") 運(yùn)行shell命令,生成對(duì)象,可賦給變量,再用read讀取 >>> import os >>> os.system('ls twisted') chat_client_twisted.py chat_server_twisted.py 0 >>> LS = os.popen('ls twisted') >>> LS.readlines() ['chat_client_twisted.py\n', 'chat_server_twisted.py\n']
os.environ 獲取系統(tǒng)環(huán)境變量
os.access('pathfile',os.W_OK) 檢驗(yàn)文件權(quán)限模式,輸出True,F(xiàn)alse
os.chmod('pathfile',os.W_OK) 改變文件權(quán)限模式
# echo 'test' > test.sh >>> os.access('test.sh',os.W_OK) True >>> os.access('test.sh',os.X_OK) False >>> os.chmod('test.sh',os.X_OK) >>> os.access('test.sh',os.X_OK) True # ls -l test.sh ---------x 1 root root 12 Oct 20 23:03 test.sh
os.path常用模塊詳解
os.path.abspath(path) 返回path規(guī)范化的絕對(duì)路徑 >>> import os.path >>> os.path.abspath('c.py') '/root/py/c.py' >>> os.path.abspath('../py/c.py') '/root/py/c.py'
os.path.split(path) 將path分割成目錄和文件名二元組返回 >>> os.path.split('/root/py/c.py') ('/root/py', 'c.py') >>> os.path.split('/root/py/') ('/root/py', '')
os.path.dirname(path) 返回path的目錄。其實(shí)就是os.path.split(path)的第一個(gè)元素 >>> os.path.dirname('/root/py/c.py') '/root/py' >>> os.path.dirname('c.py') ''
os.path.basename(path) 返回path最后的文件名。如何path以/或\結(jié)尾,那么就會(huì)返回空值。即os.path.split(path)的第二個(gè)元素 >>> os.path.basename('/root/py/c.py') 'c.py' >>> os.path.basename('/root/py') 'py'
os.path.commonprefix(list) 返回list中,所有path共有的最長(zhǎng)的路徑,從左向右,相同字符
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是絕對(duì)路徑,返回True
os.path.isfile(path) 如果path是一個(gè)存在的文件,返回True。否則返回False
os.path.isdir(path) 如果path是一個(gè)存在的目錄,則返回True。否則返回False
os.path.join(path1[, path2[, ...]]) 將多個(gè)路徑組合后返回,第一個(gè)絕對(duì)路徑之前的參數(shù)將被忽略
os.path.normcase(path) 在Linux下,該函數(shù)會(huì)原樣返回path,在windows平臺(tái)上會(huì)將路徑中所有字符轉(zhuǎn)換為小寫(xiě),并將所有斜杠轉(zhuǎn)換為反斜杠 >>> os.path.normcase('c:/windows\\system32\\') 'c:\\windows\\system32\\'
os.path.normpath(path) 規(guī)范化路徑 >>> os.path.normpath('c://windows\\System32\\../Temp/') 'c:\\windows\\Temp'
os.path.splitdrive(path) 拆分驅(qū)動(dòng)器名和路徑,主要對(duì)win,對(duì)linux元組第一個(gè)總是空的 >>> os.path.splitdrive('c:\\windows') ('c:', '\\windows')
os.path.splitext(path) 分離文件名與擴(kuò)展名;默認(rèn)返回(fname,fextension)元組,可做分片操作 ,以“.”為分隔符 >>> os.path.splitext('/root/py/c.py') ('/root/py/c', '.py')
os.path.getsize(path) 返回path的大?。ㄗ止?jié))
os.path.getatime(path) 返回path所指向的文件或者目錄的最后存取時(shí)間
os.path.getmtime(path) 返回path所指向的文件或者目錄的最后修改時(shí)間
os.path.walk(top,func,arg)
- top表示需要遍歷的目錄樹(shù)的路徑
- func表示回調(diào)函數(shù),對(duì)遍歷路徑進(jìn)行處理.所謂回調(diào)函數(shù),是作為某個(gè)函數(shù)的參數(shù)使用,當(dāng)某個(gè)時(shí)間觸發(fā)時(shí),程序?qū)⒄{(diào)用定義好的回調(diào)函數(shù)處理某個(gè)任務(wù).回調(diào)函數(shù)必須提供3個(gè)參數(shù):第1個(gè)參數(shù)為walk()的參數(shù)tag,第2個(gè)參數(shù)表示目錄列表,第3個(gè)參數(shù)表示文件列表
- arg是傳遞給回調(diào)參數(shù)func的元組.回調(diào)函數(shù)的一個(gè)參數(shù)必須是arg,為回調(diào)函數(shù)提供處理參數(shù).參數(shù)arg可以為空
>>> import os >>> def VisitDir(arg,dirname,names): ... for filespath in names: ... print os.path.join(dirname,filespath) ... >>> path='/root/py/wd/chat' >>> os.path.walk(path,VisitDir,()) /root/py/wd/chat/chat_server.py /root/py/wd/chat/chat_client.py /root/py/wd/chat/test /root/py/wd/chat/test/linuxeye /root/py/wd/chat/test/test2 /root/py/wd/chat/test/test3 /root/py/wd/chat/test/test2/asdf /root/py/wd/chat/test/test3/sdfaxx
os.path.walk()與os.walk()產(chǎn)生的文件名列表并不相同。os.path.walk()產(chǎn)生目錄樹(shù)下的目錄路徑和文件路徑,而os.walk()只產(chǎn)生文件路徑
相關(guān)文章
Python入門(mén)Anaconda和Pycharm的安裝和配置詳解
這篇文章主要介紹了Python入門(mén)Anaconda和Pycharm的安裝和配置詳解,文章通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python實(shí)現(xiàn)word 2007文檔轉(zhuǎn)換為pdf文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)word 2007文檔轉(zhuǎn)換為pdf文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法,一說(shuō)Python要安裝哪個(gè)模塊,我們第一反應(yīng),win+r輸入cmd,pip?instll安裝,但是如果換電腦了,Python第三方庫(kù)那么多,難道要一次一次的敲擊pip?install,本文就介紹一個(gè)簡(jiǎn)單的方法解放雙手,需要的朋友可以參考下2023-07-07Python 實(shí)現(xiàn)國(guó)產(chǎn)SM3加密算法的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)國(guó)產(chǎn)SM3加密算法的示例代碼,幫助大家更好的理解和學(xué)習(xí)密碼學(xué),感興趣的朋友可以了解下2020-09-09python實(shí)現(xiàn)簡(jiǎn)易連點(diǎn)器
本文主要介紹了python實(shí)現(xiàn)簡(jiǎn)易連點(diǎn)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python數(shù)據(jù)處理numpy.median的實(shí)例講解
下面小編就為大家分享一篇Python數(shù)據(jù)處理numpy.median的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04