python 文件与目录操作


Posted in Python onDecember 24, 2008

1)os.path
1.1 os.path.isabs(path) 是否是绝对路径
1.2 os.path.isfile(path)
1.3 os.path.isdir(path)
1.4 os.path.islink(path) 是否是链接;但如果系统不支持链接,返回False
1.5 os.path.ismount(path) 是否为驱动器;但是很不幸的是在python 3.0中这是个不能运行的函数。
原函数如下:

# Is a path a mount point? Either a root (with or without drive letter)
# or an UNC path with at most a / or \ after the mount point.

def ismount(path):
"""Test whether a path is a mount point (defined as root of drive)"""
unc, rest = splitunc(path)
seps = _get_bothseps(p)
if unc:
return rest in p[:0] + seps
p = splitdrive(path)[1]
return len(p) == 1 and p[0] in seps

其错误之处是显而易见的。不知道这个函数为什么这么写,在windows平台,可以如下完成该功能
def ismount(path):
p = splitdrive(path)[1]
if len(p) > 0:
return(False)
else:
return(True)

其他平台没有对应的机器,不知道具体情形。
1.6 os.path.abspath(path) 返回绝对路径
1.7 os.path.dirname(path)
1.8 os.path.exists(path)
1.9 os.path.lexists(path) 和exists函数一样
1.10os.path.getsize(path)
1.11os.path.getctime(path) 返回浮点数的系统时间,在类Unix系统上是文件最近更改的时间,
在Windows上是文件或目录的创建时间
1.12os.path.getmtime(path) 文件或目录最后更改的时间
1.13os.path.getatime(path) 文件或目录最后存取的时间
1.14os.path.samefile(path1,path2) 如果2个路径指向同样的文件或目录,返回True(Windows上不可用)
1.15os.path.split(path) 分割路径,如果path是目录,返回[parentName, dirName];
如果path是文件,返回[dirName, fileName]
1.16os.path.splitext(path) 分割路径,如果path是目录,返回[parentName, ''];
如果path是文件,返回[dirName+fileName, 文件后缀]

2)fileinput
简单使用
import file
input for line in fileinput.input():
process(line)

2.1 fileinput.input([files[, inplace[, backup[,mode[,openhook]]]]])
创建一个fileinput的实例,如果files为空,则指向控制台获得输入;如果file为'-',同样转向控制台获得输入。
默认情况,文件以text mode打开,如果需要其他格式,则需要指定。
2.2 fileinput.filename() #只有当读入第一行之后,该值才被赋值
2.3 fileinput.fileno()
2.4 fileinput.lineno()
2.5 fileinput.filelineno()
2.6 fileinput.isfirstline()
2.7 fileinput.isstdin()
2.8 fileinput.nextfile()
2.9 fileinput.close()

3)glob
可以使用简单的方法匹配某个目录下的所有子目录或文件,用法也很简单。
3.1 glob.glob(regression) 返回一个列表
3.2 glob.iglob(regression) 返回一个遍历器
这个模块简单好用,强力推荐。

4)linecache
看名字就知道了,属于缓存类的
4.1 linecache.getline(filename,lineno[, module_globals]) #获得filename的第lineno行
4.2 linecache.clearcache()
4.3 linecache.checkcache([filename]) #检查更新

5)shutil 重点推荐的袄,好东西,支持文件集合的复制和删除操作
5.1 shutil.copyfileobj(fsrc, fdst[, length])
5.2 shutil.copyfile(src, dst) #上面2个都是文件的复制
5.3 shutil.copymode(src, dst) #除了复制内容,还会复制其他的一些信息,例如作者
5.4 shutil.copystat(src, dst) #除了复制内容,还会复制存取时间的信息
5.5 shutil.copy(src, dst) #复制文件到dst,当dst为目录时,复制到子目录
5.6 shutil.copy2(src, dst) #相当于先copy再copystat
5.7 shutil.copytree(src, dst[, symlinks=False[, ingore=None]]) #复制文件夹树,注意,dst文件夹必须是不存在的
5.8 shutil.rmtree(path[, ignore_erros[, onerror]])
5.9 shutil.move(src,dst)

def copytree(src, dst, symlinks=False): 
names = os.listdir(src) 
os.makedirs(dst) 
errors = [] 
for name in names: 
srcname = os.path.join(src, name) 
dstname = os.path.join(dst, name) 
try: 
if symlinks and os.path.islink(srcname): 
linkto = os.readlink(srcname) 
os.symlink(linkto, dstname) 
elif os.path.isdir(srcname): 
copytree(srcname, dstname, symlinks) 
else: 
copy2(srcname, dstname) 
# XXX What about devices, sockets etc.? 
except (IOError, os.error) as why: 
errors.append((srcname, dstname, str(why))) 
# catch the Error from the recursive copytree so that we can 
# continue with other files 
except Error as err: 
errors.extend(err.args[0]) 
try: 
copystat(src, dst) 
except WindowsError: 
# can't copy file access times on Windows 
pass 
except OSError as why: 
errors.extend((src, dst, str(why))) 
if errors: 
raise Error(errors)
Python 相关文章推荐
Python time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
自己编程中遇到的Python错误和解决方法汇总整理
Jun 03 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
python自定义异常实例详解
Jul 11 Python
Python实现购物车功能的方法分析
Nov 10 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Pandas中resample方法详解
Jul 02 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 Python
Python datetime模块的使用示例
Feb 02 Python
python zip文件 压缩
Dec 24 #Python
python 数据加密代码
Dec 24 #Python
python 测试实现方法
Dec 24 #Python
Python 面向对象 成员的访问约束
Dec 23 #Python
pymssql ntext字段调用问题解决方法
Dec 17 #Python
python 图片验证码代码
Dec 07 #Python
下载糗事百科的内容_python版
Dec 07 #Python
You might like
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
python实现批量注册网站用户的示例
2019/02/22 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
动物科学专业求职信
2014/07/27 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
民事申诉状范本
2015/05/20 职场文书