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

来源:互联网 发布:顶点网络代理 编辑:程序博客网 时间:2024/05/21 06:41

文件处理中常用的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, statdirs = [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 osfilename = "file.tar.gz"root = os.path.splitext(os.path.splitext(filename)[0])[0]

步骤 2:解压缩文件夹

tarfile函数

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

import tarfiletar = 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路径下的所有文件夹名。

1 0
原创粉丝点击