您的位置:首页 > 编程语言 > Python开发

【学习笔记】使用Python对文件进行简单操作

2016-08-26 05:45 916 查看

文件处理中常用的Python代码1

本文内容来自互联网,代码参考Python手册。

一、删除整个目录树

函数:shutil.rmtree(path[, ignore_errors[, onerror]])

该函数删除一个完整的目录树,path必须指向一个目录。如果ignore_errors为True,移除失败的error会被忽略。否则,该error将会被onerror处理。

onerror(funciton, path, excinfo)

onerror是一个可调用的函数。function是产生异常的函数,可以是os.path.islink(), os.listdir(), os.remove()或os.rmdir()。path是传递到function的路径名。excinfo是由sys.exc_info()返回的异常信息。

程序实例

import os, shutil, stat
dirs = [d for d in os.listdir('.') if os.path.isfile(d)]
for d in dirs:
print(str(d))
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
print(str(f))


该段程序列出当前目录下所有文件夹和文件名。

def on_rm_error(func, path, exc_info):
os.chmod(path, stat.S_IWRITE)
os.unlink(path)
shutil.rmtree('dirname', onerror = on_rm_error)


该段程序定义了onerror函数,运行了shutil.rmtree,dirname为需要删除的文件夹名,如此处输入为文件名,同样能被删除,但是会产生OSError。

相关函数

os.listdir

os.path.isfile

os.path.isdir

os.chmod

os.unlink

详解

os.listdir(path)

该函数返回一个存有该路径下条目名称的list,list按任意顺序存储。

os.path.isfile(path)

若该路径为现有的文件,则返回True。

os.path.isdir(path)

若该路径为现有的目录,则返回True。

os.chmod(path, mode)

该函数改变该路径的读写模式,如参数为stat.S_IWRITE时,可授予只读路径写权限。

os.unlink(path)

该函数等同于os.remove,用来移除(删除)一个文件路径,如果该路径是一个文件夹,OSError异常会被触发。

二、解压缩tar.gz文件并获取文件夹名

步骤 1:获取压缩文件名

函数:os.path.splitext(path)

该函数分离路径名为一对(root, ext),ext为空或仅包含一个句点 ‘.’的后缀名。如path为”file.tar.gz”,为获取file名,代码如下:

import os
filename = "file.tar.gz"
root = os.path.splitext(os.path.splitext(filename)[0])[0]


步骤 2:解压缩文件夹

tarfile函数

使用tarfile解压tar.gz格式的压缩文件,具体代码如下所示:

import tarfile
tar = tarfile.open(filename)
tar.extractall()
tar.close()


步骤 3:获取解压后文件夹下的目录路径

函数:os.path.join(path, *paths)

该函数连接一个或多个path成分,返回串联的path。代码示例如下:

folders = [os.path.join(root, dir) for dir in sorted(os.listdir(root)) if os.path.isdir(os.path.join(root, dir))]


该段代码获取root路径下的所有条目名称的list,与root连接,并将所有属于directory的新path存入folders,即可得到root路径下的所有文件夹名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python