os.getcwd() 獲取當前工作目錄,即當前python腳本工作的目錄路徑
os.chdir("dirname") 改變當前腳本工作目錄;相當于shell下cdos.curdir 返回當前目錄: ('.')os.pardir 獲取當前目錄的父目錄字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄os.removedirs('dirname1') 若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推os.mkdir('dirname') 生成單級目錄;相當于shell中mkdir dirnameos.rmdir('dirname') 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當于shell中rmdir dirnameos.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.0os.walk() 生成一個目錄樹下的所有文件名
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
該函數返回一個元組,該元組有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下為"http://",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,Falseos.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.shos.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)
>>> 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()只產生文件路徑
新聞熱點
疑難解答
圖片精選