文档章节

os.path —— 平台独立的文件名管理 (解析路径篇)

姐夫
 姐夫
发布于 2012/08/28 13:17
字数 543
阅读 550
收藏 0

1. os 中的一些变量

os.sep     ———— 路径各部分之间的分隔符(例如,“/”或者“\”)
os.extsep  ———— 文件名和文件扩展名之间的分隔符(例如,“.”)
os.pardir  ———— 路径中表示目录树上一级的部分(例如,“...”)
os.curdir  ———— 路径中表示当前目录的部分(例如,“.”)

示例代码:

import os

print os.sep
print os.extsep
print os.pardir
print os.curdir

运行结果:
\
.
..
.

2. split()函数将路径分为两个单独的部分,并返回包含这些结果的一个元组,这个元组的第二个元素是路径的最后一个部分,第一个元素为剩余的前面部分。
 

示例代码:

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()返回元组的第二个元素

示例代码:

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()函数返回分解路径得到的第一部分

示例代码:

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() 的结果结合,可以得到原来的路径.

5. splitext()函数和split()类似,不过他是根据扩展名分隔符而不是目录分隔符来分解路径

示例代码:

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

 

© 著作权归作者所有

姐夫
粉丝 49
博文 34
码字总数 8509
作品 0
浦东
程序员
私信 提问
每周一个 Python 模块 | os.path

专栏地址:每周一个 Python 模块 本文基于 Python3 编写测试。 模块是跨平台的,即使不打算在平台之间移植自己的程序也应该用 ,好处多多。 解析路径 第一组 函数可用于将表示文件名的字符串...

yongxinz
01/28
0
0
Python 学习笔记 (7)—— OS模块

os 模块,正如其名,主要与操作系统打交道的,下面介绍下一些常见的功能 一、文件与目录操作 1、os.getcwd() 获取当前路径 >>> import os >>> os.getcwd() '/tmp/python' 2、os.listdir() 列......

10730
2014/01/21
0
0
python学习——python os.path模块常用方法详解

os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html os.path.abspath(path)...

Oo熊小猫oO
2016/05/09
65
0
Python os 模块知识点整理

Python os模块知识点整理> 先引用 os.py 的一段介绍 This exports: all functions from posix, nt or ce, e.g. unlink, stat, etc. Programs that import and use ‘os’ stand a better cha......

lovebaby859450415
2018/03/27
0
0
python学习笔记

os 模块属性 linesep 用于在文件中分隔行的字符串 sep 用来分隔文件路径名的字符串 pathsep 用于分隔文件路径的字符串 curdir 当前工作目录的字符串名称 pardir (当前工作目录的)父目录字符串...

justery
2013/02/03
157
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript设计模式——适配器模式

  适配器模式是设计模式行为型模式中的一种模式;   定义:   适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修...

有梦想的咸鱼前端
32分钟前
3
0
Andorid SQLite数据库开发基础教程(1)

Andorid SQLite数据库开发基础教程(1) Android数据库访问方式 SQLite是Android系统默认支持的文件数据库。该数据库支持SQL语言,适合开发人员上手。本教程将讲解如何开发使用SQLite的Andro...

大学霸
35分钟前
3
0
Handler简解

Handler 这里简化一下代码 以便理解 Handler不一定要在主线程建 但如Handler handler = new Handler(); 会使用当前的Looper的, 由于要更新UI 所以最好在主线程 new Handler() { mLooper = Lo...

shzwork
57分钟前
4
0
h5获取摄像头拍照功能

完整代码展示: <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum......

诗书易经
今天
3
0
正向代理和反向代理

文章来源 运维公会:正向代理和反向代理 1、正向代理 (1)服务对象不同 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代...

运维团
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部