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的*args和**kwargs用法
Nov 01 Python
Python判断变量是否已经定义的方法
Aug 18 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
python3 property装饰器实现原理与用法示例
May 15 Python
linux下python中文乱码解决方案详解
Aug 28 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
Django实现分页显示效果
Oct 31 Python
python模拟实现斗地主发牌
Jan 07 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python 命名规范知识点汇总
Feb 14 Python
python把一个字符串切开的实例方法
Sep 27 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 获取select下拉列表框的值
2010/05/08 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
八年级音乐教学反思
2014/01/09 职场文书
劲霸男装广告词
2014/03/21 职场文书
促销活动总结
2014/04/28 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
2015年底工作总结范文
2015/05/15 职场文书
结婚幸福感言
2015/08/01 职场文书
会计岗位工作总结
2015/08/12 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS