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程序实例(通讯录)
Nov 29 Python
Python中使用Inotify监控文件实例
Feb 14 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
Python装饰器模式定义与用法分析
Aug 06 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
Python按钮的响应事件详解
Mar 04 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
Python输出指定字符串的方法
Feb 06 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
php 常用的系统函数
2017/02/07 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
Vue实现一个无限加载列表功能
2018/11/13 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python写的贪吃蛇游戏例子
2014/06/16 Python
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python功能键的读取方法
2015/05/28 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
工程催款通知书
2015/04/17 职场文书
普通员工辞职信范文
2015/05/12 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
Golang 字符串的常见操作
2022/04/19 Golang