os.path —— 平臺獨立的文件名管理 (解析路徑篇)

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
相關文章
相關標籤/搜索