1. os 中的一些變量python
os.sep ———— 路徑各部分之間的分隔符(例如,「/」或者「\」) os.extsep ———— 文件名和文件擴展名之間的分隔符(例如,「.」) os.pardir ———— 路徑中表示目錄樹上一級的部分(例如,「...」) os.curdir ———— 路徑中表示當前目錄的部分(例如,「.」)
示例代碼:函數
import os print os.sep print os.extsep print os.pardir print os.curdir
運行結果:
\ . .. .
2. split()函數將路徑分爲兩個單獨的部分,並返回包含這些結果的一個元組,這個元組的第二個元素是路徑的最後一個部分,第一個元素爲剩餘的前面部分。
示例代碼:code
import os.path for path in [ '/one/two/three', '/one/two/three/', '/', '.', '']: print '%15s : %s' %(path, os.path.split(path))
運行結果:
/one/two/three : ('/one/two', 'three') /one/two/three/ : ('/one/two/three', '') / : ('/', '') . : ('', '.') : ('', '')
3. basename()函數返回的值等價於split()返回元組的第二個元素three
示例代碼:
字符串
import os.path for path in [ '/one/two/three', '/one/two/three/', '/', '.', '']: print '%15s : %s' %(path, os.path.basename(path))
運行結果:
/one/two/three : three /one/two/three/ : / : . : . :
4. dirname()函數返回分解路徑獲得的第一部分
示例代碼:it
import os.path for path in [ '/one/two/three', '/one/two/three/', '/', '.', '']: print '%15s : %s' %(path, os.path.dirname(path))
運行結果:
/one/two/three : /one/two /one/two/three/ : /one/two/three / : / . : :
因此將 dirname()和 basename() 的結果結合,能夠獲得原來的路徑.
io
5. splitext()函數和split()相似,不過他是根據擴展名分隔符而不是目錄分隔符來分解路徑class
示例代碼:import
import os.path for path in [ 'filename.txt', 'filename', '/path/to/filename.txt', '/', '' 'my-archive.tar.gz', 'no-extension.',]: print '%21s : %s' %(path, os.path.splitext(path))
運行結果:
filename.txt : ('filename', '.txt') filename : ('filename', '') /path/to/filename.txt : ('/path/to/filename', '.txt') / : ('/', '') my-archive.tar.gz : ('my-archive.tar', '.gz') no-extension. : ('no-extension', '.')
6. commonprefix()取一個路徑列表做爲參數,將返回一個字符串,表示全部路徑中都出現的公共前綴。
這個值可能表示一個根本不存在的路徑,並且不考慮路徑分隔符,因此這個前綴可能並不落在一個分隔符邊界上。 變量
示例代碼:
import os.path paths = [ '/one/two/three/four', '/one/two/threeflod', '/one/two/three/'] for path in paths: print 'PATH:', path print 'PREFIX :', os.path.commonprefix(paths)
運行結果:
PATH: /one/two/three/four PATH: /one/two/threeflod PATH: /one/two/three/ PREFIX : /one/two/three