os 模塊

os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑 python

os.chdir("dirname") 改變當前腳本工做目錄;至關於shellcdlinux

os.curdir 返回當前目錄: ('.')shell

os.pardir 獲取當前目錄的父目錄字符串名:('..')windows

os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄bash

os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推函數

os.mkdir('dirname') 生成單級目錄;至關於shellmkdir dirnamespa

os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shellrmdir dirname操作系統

os.listdir('dirname') 列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印.net

os.remove() 刪除一個文件orm

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()舉例:

?

1

2

3

4

5

6

7

>>> 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) 檢驗文件權限模式,輸出TrueFalse

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能夠爲空

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

>>> 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()只產生文件路徑

相關文章
相關標籤/搜索