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编写脚本使IE实现代理上网的教程
Apr 23 Python
python处理大数字的方法
May 27 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
python爬虫爬取网页表格数据
Mar 07 Python
快速解决PyCharm无法引用matplotlib的问题
May 24 Python
Python实现随机漫步功能
Jul 09 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
Pytorch中.new()的作用详解
Feb 18 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
python实现进度条的多种实现
Apr 29 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中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
网页中CDATA标记的说明
2010/09/12 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
浅析Python中字符串的intern机制
2020/10/03 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
开学典礼主持词
2014/03/19 职场文书
项目经理任命书内容
2014/06/06 职场文书
宣传标语大全
2014/07/01 职场文书
食品药品安全责任书
2015/05/11 职场文书
中秋联欢会主持词
2015/07/04 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
Spring实现内置监听器
2021/07/09 Java/Android
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS