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 相关文章推荐
基于wxpython开发的简单gui计算器实例
May 30 Python
python实现多线程的两种方式
May 22 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
Feb 22 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
python Cartopy的基础使用详解
Nov 01 Python
Python关于OS文件目录处理的实例分享
May 23 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 SDK之微信公众号支付代码详解
2015/12/09 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
python根据路径导入模块的方法
2014/09/30 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
浅谈Python反射 & 单例模式
2019/03/21 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
汽车技术服务英文求职信范文
2014/01/02 职场文书
党校培训思想汇报
2014/01/03 职场文书
《狼》教学反思
2014/03/02 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python