python学习笔记 - 操作文件和目录

2017-01-13 10:51:54来源:作者:茹哥人点击

第七城市

pytho的os、os.path模块给我买提供了很多对文件或者目录进行操作的方法。


os.path 对目录的操作
import os.path
print os.path.abspath('.')
# 获取绝对路径
print os.path.join('aaa','bbb')
# 合并目录。因为路径分隔符是平台相关的
print os.path.split('aaa/bbb/ccc')
#分离路径。总是将把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名
print os.path.split('aaa')
# ('', 'aaa')
print os.path.split('aaa/bbb/ccc/demo.txt')
# ('aaa/bbb/ccc', 'demo.txt')
print os.path.splitext('aaa/bbb/ccc/demo.txt')
# ('aaa/bbb/ccc/demo', '.txt')
os对文件进行操作
os.rename('world222.txt', 'world222.txt')
# 重命名
os.remove('world2.txt')
# 删除文件
os.removedirs('hello')
删除目录时,目录必须为空
# 删除目录
shutil,os模块的扩展版。

说明:shutil的高级拷贝函数copy()`copy2()`均不能完全拷贝文件的元数据(metadata).


shutil.copyfileobj(fsrc, fdst[, length])

拷贝file-like object.


shutil.copyfile(src, dst)

src、dst必须是带路径的文件名。src、dst如果一样,那么则会包Error错误目标路径必须可写,否则IOError


shutil.copy(src, dst)

src dst可以是文件或者目录


shutil.copymode(src, dst)

拷贝mode,就是文件权限


shutil.copystat(src, dst)

拷贝文件权限,最后访问时间,最后修改时间,标记。


shutil.copy(src, dst) 和 shutil.copy2(src, dst)

src 需是文件; dst可以是文件或者是目录。shutil.copy会拷贝权限信息。shutil.copy2则是shutil.copy(src, dst)和shutil.copystat(src, dst)的结合。


shutil.copytree(src, dst)

拷贝目录,dst必须是还未存在的。dst如果已经存在但是并非一个目录,也会出错。


shutil.rmtree(src, dst)

删除目录。


shutil.move(src, dst)

讲一个目录或者文件移动到另一个文件或者目录。


过滤

我们可以使用for...if...来过滤目录。


print [x for x in os.listdir('.') if os.path.splitext(x)[1] == '.py']
#打印出所有以.py结尾的文件。
print [x for x in os.listdir('.') if os.path.isdir(x)]
# 打印出所有的目录。

内容来源:https://segmentfault.com/a/1190000008075088

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台