python 文件和路径操作函数小结


Posted in Python onNovember 23, 2009

1: os.listdir(path) //path为目录
功能相当于在path目录下执行dir命令,返回为list类型
print os.listdir('..')
2: os.path.walk(path,visit,arg)
path :是将要遍历的目录
visit :是一个函数指针,函数圆形为:
callback(arg,dir,fileList)
其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit用的
3:os.path.split(path)
path 为一个路径,
输出,把path分成两部分,具体看实例:
print os.path.split("abc/de.txt")
('abc', 'de.txt')
os.path.split("abc")
(", 'abc')
print os.path.split("de/abc/de")
('de/abc', 'de')
4: os.path.splitext(filename)
把文件名分成文件名称和扩展名
os.path.splitext(abc/abcd.txt)
('abc/abcd', '.txt')
5: os.path.dirname(path)
把目录名提出来
print os.path.dirname("abc")
#输出为空
print os.path.dirname('abc\def')
abc
6: os.path.basename(filename)
取得主文件名
print os.path.basename('abc')
abc
print os.path.basename('abc.txt')
abc
print os.path.basename('bcd/abc')
abc #这个需要注意不包括目录名称
print os.path.basename('.')
.
7:os.mkdir(path, [mode])
path为目录名: 这里有个要求,只能创建一级目录
比如path为 abc/def 则当前目录下必须存在abc 否则失败
8: os.makedirs(path [,mode])
可以创建多级目录
9:os.remove(path)删除一个文件,一定是一个文件
os.removedirs(path) 删除一个目录下所有东西
os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer
10:os.walk(path)
遍历path,返回一个对象,他的每个部分都是一个三元组
('目录x',[目录x下的目录list],目录x下面的文件)
举例:
a = os.walk('.')
for i in a:
print i
11:shutil.copy(src,dst)
把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖
??????????????????
11.1 os.path -- 普通的路径名操作
这个模块实现一些在路径名称上有用的函数。
警告:在 Windows 上,这些函数中的多个不能正确地支持 UNC 路径名。splitunc() 和 ismount() 可以正确地处理它们。
abspath(path)
返回 path 路径名一个规格化的绝对化的版本。在大多数平台上,相当于normpath(join(os.getcwd(), path))。1.5.2版本中的新特性。
basename(path)
返回 path 路径名最底部的名称。这是由 split(path)返回的对的第二半部分。注意这个函数的结果不同于Unix basename 程序;UNIX的 basename对于'/foo/bar/' 返回 'bar',basename() 函数返回一个空字符串('')。
commonprefix(list)
返回最长的路径前缀(采取字符的字符),是 list中所有路径的一个前缀。如果 list 为空,返回空字符串('')。注意可以返回无效的路径因为它每次操作一个字符。
dirname(path)
返回 path 路径名的目录名称。这是由 split(path)返回的对的第一半部分。
exists(path)
如果 path 与一个已存在的路径关联返回True。对于损坏的符号连接返回 False 。在一些平台上,如果权限没有被授予在请求的文件上执行os.stat()这个函数可能返回False,即使该 path 实际上存在。
lexists(path)
如果 path 与一个已存在的路径关联返回 True 。对于损坏的连接返回 True 。在一些缺少 os.lstat()的平台上相当于 exists() 。2.4版本中的新特性。
expanduser(path)
在 Unix上,返回 "~"或"~user"做为替换用户的主目录的开始部分的参数。开始的"~" 通过环境变量 HOME(如果它被设置)替换; 否则当前用户的主目录在口令目录中通过内置模块 pwd被查询。开始的"~user" 直接地在口令目录中被查询。
在 Windows 上,仅支持 "~" ;它通过环境变量 HOME 或通过HOMEDRIVE 和 HOMEPATH的组合替换。
如果该扩充失败或如果该路径不以一个波浪号开始,被返回的路径无改变。
expandvars(path)
返回使用环境变量扩充的参数。"$name" 或 "${name}"格式的子串通过环境变量 name 的值被替换。残缺的变量名称和引用不存在的变量被无改变的遗弃。
getatime(path)
返回 path 的最后访问时间。返回的值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。
getmtime(path)
返回 path 最后修改的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。
getctime(path)
返回系统的 ctime ,在一些系统上 (像Unix) 是最后改变的时间,在其他一些系统上 (像Windows),是 path 创建的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。2.3版本中的新特性。
getsize(path)
以字节为单位,返回 path 的大小。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。
isabs(path)
如果 path 是一个绝对路径名返回True (以一个斜杠开始)。
isfile(path)
如果 path 是一个已存在的普通文件返回True 。这效仿符号连接,因此 islink() 和 isfile() 对于相同的路径都可以返回 true 。
isdir(path)
如果 path 是一个已存在的目录返回 True 。这效仿符号链接,因此 islink() 和 isdir() 对于相同的路径都可以返回 true 。
islink(path)
如果 path 引用一个目录项,它是一个符号连接,返回True。如果不支持符号连接始终返回 False 。
ismount(path)
如果路径名 path是一个 挂载点 返回 True :在文件系统中的那个点一个不同的文件系统已经被挂载。这个函数检测是否 path的父路径, path/..,和 path 是一个不同的设备,或是否 path/.. 和 path 在相同的设备上指向相同的i-node -- 这应该是为所有的 Unix 和 POSIX 变种检测挂载点。
join(path1[, path2[, ...]])
智能化地连接一个或多个路径组件。如果任一组件是一个绝对路径,所有前面的组件被丢弃(在Windows 上,包括前面的驱动器名,如果有) ,并且继续连接。返回的值是 path1,和可选地 path2等的组合,正确地以一个目录分隔符 (os.sep)插入到两个组件之间,除非 path2 为空。注意在 Windows 上,因为每个驱动器有一个当前目录,os.path.join("c:", "foo")表示相对于驱动器 C: 上的当前目录的一个路径(c:foo),而不是 c:\\foo。
normcase(path)
标准化一个路径名的大小写。在Unix上,返回未改变的路径;在不区分大小写的文件系统上,它转换路径为小写字母。在Windows上 ,它也转换正斜杠为反斜杠。
normpath(path)
标准化一个路径名。折叠多余(或冗长的)分隔符并且定位于外层引用,以致于 A//B,A/./B 和 A/foo/../B 都变成 A/B。它不标准化大小写(标准化大小写用 normcase())。在Windows上,它转换正斜杠为反斜杠。如果它包含符号连接,它应该明白这可能改变路径的意图!
realpath(path)
返回指定的文件名标准的路径,除去在路径中遇到的任何符号连接(如果操作系统支持)。2.2版本中的新特性。
samefile(path1, path2)
如果路径名参数与相同的文件或目录关联返回 True (通过设备号和 i-node 数表示)。如果 os.stat() 调用每个路径名失败挂起一个异常。有效的:Macintosh,Unix。
sameopenfile(fp1, fp2)
如果文件描述符 fp1 和 fp2 与相同的文件关连返回 True 。有效的:Macintosh,Unix。
samestat(stat1, stat2)
如果 stat 元组 stat1和stat2 与相同的文件关连返回 True 。这个结构可能由fstat(),lstat(),或stat()返回。这个函数使用samefile() 和 sameopenfile()实现了基本的比较。有效的:Macintosh,Unix。
split(path)
分割路径名 path 到一个对中,(head, tail)中 tail 是最后的路径名组件head 是引导它的任何事物。tail 部分将一直都不包括斜线;如果 path 以一个斜线结尾,tail 将为空。如果 path 中没有斜线,head 将为空。如果 path 为空,head 和 tail 都为空。尾随斜线从 head 中被去除,除非它是根(one or more slashes only)。在几乎所有的情况中,join(head, tail) 相当于 path (只有一个例外是当从 tail 中 head 被多个斜线分割时)。
splitdrive(path)
分割路径名 path 到一个(drive, tail) 对中,drive 是每个驱动器的说明或空字符串。在系统上不使用驱动器说明的,drive 将一直是空字符。在所有情况中,drive + tail 将和 path 相同。1.3版本中的新特性。
splitext(path)
分割路径名 path 到一对 (root, ext) 中以致 root + ext == path,并且ext 为空或以一个句点开始并且只多包含一个句点。
splitunc(path)
分割路径名 path 到一个对(unc, rest)中以便于 unc 是 UNC 挂载点 (诸如 r'\\host\mount'),如果,并且 rest 路径的其余部分(诸如 r'\path\file.ext')。对于路径包含驱动器名,unc 将一直是空字符。有效的:Windows。
walk(path, visit, arg)
对于以 path 为根的目录树中的每一个目录 (包含 path 自身,如果它是一个目录),以参数 (arg, dirname, names)调用函数 visit 。参数 dirname 指定访问的目录,参数 names 列出在目录中的文件(从 os.listdir(dirname)中得到)。visit 函数可以修改 names 改变 dirname 下面访问的目录的设置,例如,避免访问树的某一部分。(由 names 关连的对象必须在合适的位置被修改,使用 del 或 slice 指派。)
注意:符号连接到目录不被作为一个子目录处理,并且因此 walk()将不访问它们。访问连接的目录你必须以os.path.islink(file) 和 os.path.isdir(file)标识它们,并且必须调用walk() 。

Python 相关文章推荐
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
python元组拆包实现方法
Feb 28 Python
Python+Django在windows下的开发环境配置图解
Nov 11 #Python
Python 开发Activex组件方法
Nov 08 #Python
Python 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 #Python
python 中文字符串的处理实现代码
Oct 25 #Python
动态创建类实例代码
Oct 07 #Python
Python 文件操作实现代码
Oct 07 #Python
Python 第一步 hello world
Sep 25 #Python
You might like
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
Javascript倒计时代码
2010/08/12 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
学习Django知识点分享
2019/09/11 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
安全生产管理责任书
2014/04/16 职场文书
团队精神口号
2014/06/06 职场文书
导游词之上海豫园
2019/10/24 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电