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
相关文章
相关标签/搜索