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中函数传递参数是值传递还是引用传递
Nov 07 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
python实现随机梯度下降法
Mar 24 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python输入错误后删除的方法
Oct 12 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
Autopep8的使用(python自动编排工具)
Mar 02 Python
Python初识逻辑与if语句及用法大全
Aug 07 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 str_pad 函数使用详解
2009/01/13 PHP
php empty函数 使用说明
2009/08/10 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jquery map方法使用示例
2014/04/23 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python django事务transaction源码分析详解
2017/03/17 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
python实现高斯投影正反算方式
2020/01/17 Python
python中使用np.delete()的实例方法
2021/02/01 Python
个人评价范文分享
2014/01/11 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
投标保密承诺书
2014/05/19 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
公务员个人年终总结
2015/02/12 职场文书
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android