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私有属性和方法实例分析
Jan 15 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
基于python 字符编码的理解
Sep 02 Python
django 解决manage.py migrate无效的问题
May 27 Python
Python如何调用外部系统命令
Aug 07 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
django 外键创建注意事项说明
May 20 Python
Python 如何在字符串中插入变量
Aug 01 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 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遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
Python 文件重命名工具代码
2009/07/26 Python
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
使用python实现生成用户信息
2017/03/20 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
中学教师培训制度
2014/01/31 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
会计岗位职责范本
2015/04/02 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
python数字类型和占位符详情
2022/03/13 Python
Python装饰器详细介绍
2022/03/25 Python