shutil文件操作

  • shutil 可以看作 sh + util,即 shell 工具之意,该模块提供了一些针对文件和文件夹的高级操作,如:拷贝、删除、移动等,shutil 模块是对 os 模块的补充。
  • 文件和文件夹操作
  • copyfileobj(fsrc, fdst, length=161024)*
  • 复制对象 fsrc 的内容到 fdst,如果 fdst 不存在则自动创建,length 表示缓冲大小,如果是负数表示直接复制,默认为值为 161024。*
  • ****shutil.copyfile(src, dst, *, follow_symlinks=True)****
  • 复制文件 src 的内容到 dst 并返回 dst,如果 dst 不存在则自动创建,src 和 dst 是字符串类型的路径名,如果 src 和 dst 指向同一个文件*copymode(src, dst, , follow_symlinks=True),抛出 SameFileError。
  • 复制文件 src 的权限到 dst,src 和 dst 是字符串类型的路径名,如果 follow_symlinks 为 False 且 src 和 dst 都是符号链接,将修改 dst 符号链接文件而非源文件的权限。
  • 符号链接(软链接)是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。
  • *copystat(src, dst, , follow_symlinks=True)
  • 复制 src 的权限、最后访问时间、最后修改时间以及标志到 dst,src 和 dst 是字符串类型的路径名,可以是文件或目录,在Linux平台上还会复制扩展属性。
  • 扩展文件属性是文件系统的一个功能,它允许用户将计算机文件与未被文件系统所解释的元数据关联起来。
  • ****copy(src, dst, *, follow_symlinks=True)****
  • 复制文件 src 的内容和权限到 dst,dst 可以是文件或文件夹,如果是文件,函数的返回值就是 dst,如果是文件夹,函数的返回值就是 src 的文件名与 dst 的路径拼接,src 和 dst 都是字符串类型,如果 dst 指向一个文件夹,则创建与 src 同名的新文件。
  • *copy2(src, dst, , follow_symlinks=True)
  • 该方法会保留 src 的所有元数据(如创建时间、修改时间等),其他与 copy() 相同,当 follow_symlinks 为 False 且 src 为软链接时,dst 将作为软链接被创建并拷贝 src 的所有元数据到 dst。
  • ****ignore_patterns(*patterns)****
  • 创建并返回一个函数,可传递到 copytree() 中作为 ignore 参数的值,忽略满足匹配模式的文件和目录。
  • copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False)
  • 递归复制以 src 为根目录的整个目录树,返回目标目录 dst,dst 必须是不存在的目录,它和它不存在的父目录都将被创建,使用 copystat() 复制目录元数据,使用 copy2() 复制文件内容和元数据。
  • symlinks:是否复制软链接;
  • ignore:指定不参与复制的文件,其值应该是一个 ignore_patterns() 方法;
  • copy_function:指定复制的模式。
  • ****rmtree(path, ignore_errors=False, onerror=None)****
  • 删除目录,path 必须指定一个目录。
  • move(src, dst, copy_function=copy2)
  • 移动文件或目录到目标位置,如果目标位置 dst 是一个存在的目录,将 src 移动到 dst 路径下。
  • ****disk_usage(path)****
  • 检测磁盘使用信息,返回值为元组。
  • which(cmd, mode=os.F_OK | os.X_OK, path=None)
  • 返回 cmd 调用的可执行文件路径,没有返回 None。mode:用于判断文件是否存在或可执行,path:cmd 的查找路径。
  • chown(path, user=None, group=None)
  • 改变指定 path 的所有者和所属组,user 和 group 参数,可以是系统上的用户名、组名或 uid/gid,至少需要传递其中一个参数。
  • 归档操作
  • ****make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)****
  • 创建归档文件,并返回归档文件的名称。
  • base_name:要创建的归档文件的名称,可以包含路径表示归档文件的目标位置;
  • format:归档文件的格式(zip、tar、 gztar、bztar、xztar);
  • root_dir:归档文件的根目录(默认当前目录);
  • base_dir:归档文件中所有文件和目录的前缀路径(默认当前目录);
  • dry_run:如果为 True,不创建归档文件。
  • owner/group:归档文件中所有文件和目录的所属用户和组,如果 format 为 zip,owner 和 group 的配置不生效;
  • logger:通常使用 logging.Logger 对象;
  • verbose:已弃用。
  • get_archive_formats()
  • 返回支持的归档格式列表,列表中的每个元素是 (name, description) 形式的元组。
  • ****register_archive_format(name, function, extra_args=None, description='')****
  • 注册一个格式名并绑定到一个压缩时使用的程序,function 是用于解包存档文件的可调用函数。
  • unregister_archive_format(name)
  • 从支持的归档格式中移除 name。
  • ****unpack_archive(filename, extract_dir=None, format=None)****
  • 解压归档文件。filename:归档文件名称;extract_dir:归档文件解压的目标位置;format:使用指定格式的解压器解压归档文件。
  • register_unpack_format(name, extensions, function, extra_args=None, description='')
  • 注册格式为 name 的解压器
  • ****unregister_unpack_format(name)****
  • 从支持的解压格式中移除 name。
  • get_unpack_formats()
  • 返回支持的解压格式列表,列表中的每个元素是 (name, extensions, description) 形式的元组。
  • 查询终端大小
  • ****get_terminal_size()****
  • 查询终端大小。

[好文要顶](javascript:void(0);)

import os,sys
import shutil
dstPath="test/"
 
print "目录删除前: %s"  % os.listdir(dstPath)
#递归的删除目录及文件
#shutil.rmtree('test/aa')
#以下两个函数用于删除空目录文件
os.rmdir("test/aa")
#os.removedirs("test/aa")
print "目录删除后: %s"  % os.listdir(dstPath)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356