Python os模組介紹_python

來源:互聯網
上載者:User
os.getcwd() 擷取當前工作目錄,即當前python指令碼工作的目錄路徑 
os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cd
os.curdir 返回目前的目錄: ('.')
os.pardir 擷取目前的目錄的父目錄字元串名:('..')
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.symlink('path/filename','ln_filename') 建立符號連結,源需絕對路徑
os.utime() 修改時間屬性>>> 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.0modified 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.0modified time of c.py: 1369735909.0退出Python互動模式,再次進入>>> 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.0modified time of c.py: 1369735977.0
os.walk() 產生一個分類樹下的所有檔案名稱

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

  • top表示需要遍曆的分類樹的路徑
  • topdown的預設值是”True”,表示首先返回分類樹下的檔案,然後在遍曆分類樹的子目錄.Topdown的值為”False”時,則表示先遍曆分類樹的子目錄,返回子目錄下的檔案,最後返回根目錄下的檔案
  • onerror的預設值是”None”,表示忽略檔案遍曆時產生的錯誤.如果不為空白,則提供一個自訂函數提示錯誤資訊後繼續遍曆或拋出異常中止遍曆

該函數返回一個元組,該元組有3個元素,這3個元素分別表示每次遍曆的路徑名,目錄列表和檔案清單
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)) #列印檔案絕對路徑... for name in dirs:...  print(os.path.join(root, name)) #列印目錄絕對路徑...
os.tmpfile() 建立並開啟‘w+b'一個新的臨時檔案
os.sep 輸出作業系統特定的路徑分隔字元,win下為"\\",Linux下為"/"
os.linesep 輸出當前平台使用的行終止符,win下為"\t\n",Linux下為"\n"
os.pathsep 輸出用於分割檔案路徑的字串
os.name 輸出字串指示當前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 運行shell命令,直接顯示
os.popen("bash command") 運行shell命令,產生對象,可賦給變數,再用read讀取>>> import os>>> os.system('ls twisted')chat_client_twisted.py chat_server_twisted.py0 >>> LS = os.popen('ls twisted')>>> LS.readlines()['chat_client_twisted.py\n', 'chat_server_twisted.py\n']
os.environ 擷取系統內容變數
os.access('pathfile',os.W_OK) 檢驗檔案許可權模式,輸出True,False
os.chmod('pathfile',os.W_OK) 改變檔案許可權模式
# 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正常化的絕對路徑>>> 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的目錄。其實就是os.path.split(path)的第一個元素>>> os.path.dirname('/root/py/c.py')'/root/py'>>> os.path.dirname('c.py')''
os.path.basename(path) 返回path最後的檔案名稱。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素>>> os.path.basename('/root/py/c.py')'c.py'>>> os.path.basename('/root/py')'py'
os.path.commonprefix(list) 返回list中,所有path共有的最長的路徑,從左向右,相同字元
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是絕對路徑,返回True
os.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回False
os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False
os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略
os.path.normcase(path) 在Linux下,該函數會原樣返回path,在windows平台上會將路徑中所有字元轉換為小寫,並將所有斜杠轉換為反斜線>>> os.path.normcase('c:/windows\\system32\\')'c:\\windows\\system32\\'
os.path.normpath(path) 正常化路徑>>> os.path.normpath('c://windows\\System32\\../Temp/')'c:\\windows\\Temp'
os.path.splitdrive(path) 拆分磁碟機名和路徑,主要對win,對linux元組第一個總是空的>>> os.path.splitdrive('c:\\windows')('c:', '\\windows')
os.path.splitext(path) 分離檔案名稱與副檔名;預設返回(fname,fextension)元組,可做分區操作 ,以“.”為分隔字元>>> os.path.splitext('/root/py/c.py')('/root/py/c', '.py')
os.path.getsize(path) 返回path的大小(位元組)
os.path.getatime(path) 返回path所指向的檔案或者目錄的最後存取時間
os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間

os.path.walk(top,func,arg)

  • top表示需要遍曆的分類樹的路徑
  • func表示回呼函數,對遍曆路徑進行處理.所謂回呼函數,是作為某個函數的參數使用,當某個時間觸發時,程式將調用定義好的回呼函數處理某個任務.回呼函數必須提供3個參數:第1個參數為walk()的參數tag,第2個參數表示目錄列表,第3個參數表示檔案清單
  • arg是傳遞給回調參數func的元組.回呼函數的一個參數必須是arg,為回呼函數提供處理參數.參數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()產生的檔案名稱列表並不相同。os.path.walk()產生分類樹下的目錄路徑和檔案路徑,而os.walk()只產生檔案路徑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.