1、shutil是shell
utility的缩写
shutil.move直接从一个地方挪到另一个地方,而os.rename常常只能重命名,不能挪动位置。
功能是:
>shutil.move('old.txt',r'c:datarchive') >shutil.copy('old.txt',r'c:datarchive') >os.remove('junk.dat')
2、高级文件操作(拷贝/移动/压缩/解压缩)
#!/usr/bin/env python # coding=utf-8 __author__ = 'zhuo' __date__ = '2017/5/25' # shutil_demo.py 高级文件操作(拷贝 / 移动 / 压缩 / 解压缩) import shutil def shutil_demo(): # 拷贝文件 shutil.copy2('file.txt', 'temp.txt') # 拷贝目录 shutil.copytree("root", "temp", symlinks=False, ignore=shutil.ignore_patterns("*.pyc"), copy_function=shutil.copy2, ignore_dangling_symlinks=True) # 删除目录 shutil.rmtree("temp", ignore_errors=True) # 移动文件/目录 shutil.move("root", "temp", copy_function=shutil.copy2) # 获取磁盘使用空间 total, used, free = shutil.disk_usage(".") print("当前磁盘共: %iGB, 已使用: %iGB, 剩余: %iGB"%(total / 1073741824, used / 1073741824, free / 1073741824)) # 压缩文件 shutil.make_archive('Box', 'zip', 'temp') # 解压文件 shutil.unpack_archive('Box.zip') def shutil_func(): # 文件和目录操作 # shutil.copyfileobj(fsrc, fdst[, length]) // 拷贝文件内容, 将fsrc文件里的内容copy到fdst文件中, length:缓冲区大小 shutil.copyfileobj(open('file.txt', 'r'), open('temp.txt', 'w')) # shutil.copyfile(src, dst, *, follow_symlinks=True) // 拷贝文件内容, 同copyfileobj, 如果dst=src,抛SameFileError异常, dst存在则替换 dst = shutil.copyfile('file.txt', 'temp.txt') # shutil.copymode(src, dst, *, follow_symlinks=True) // 仅拷贝权限, 其他信息不受影响 shutil.copymode('file.txt', 'temp.txt') # shutil.copystat(src, dst, *, follow_symlinks=True) // 拷贝状态(权限 / 最后访问时间 / 上次修改时间 / 标志), 其他不受迎影响 shutil.copystat('file.txt', 'temp.txt') # shutil.copy(src, dst, *, follow_symlinks=True) // 拷贝文件(数据 / 权限) dst = shutil.copy('file.txt', 'temp.txt') # shutil.copy2(src, dst, *, follow_symlinks=True) // 拷贝文件(尝试保留所有元数据) (不能拷贝创建时间,该时间可通过修改系统时间再创建文件来实现) dst = shutil.copy2('file.txt', 'temp.txt') # shutil.ignore_patterns(*patterns) # symlinks:True(复制链接) / False(复制文件), ignore=ignore_patterns("") // 忽略的文件, copy_function=自定义复制函数, ignore_dangling_symlinks:True(忽略文件不存在异常) / False(错误列表中添加异常) # shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False) // 递归的复制根目录下的整个目录树 dst = shutil.copytree("root", "temp", symlinks=False, ignore=shutil.ignore_patterns("*.pyc"), copy_function=shutil.copy2, ignore_dangling_symlinks=True) # shutil.rmtree(path, ignore_errors=False, onerror=None) // 删除整个目录树, ignore_errors:是否忽略删除失败错误, onerror=def error(func, path, excinfo) shutil.rmtree("temp", ignore_errors=True) # shutil.move(src, dst, copy_function=copy2) // 递归移动文件/目录, 目录存在则移动目录, 文件存在则覆盖 dst = shutil.move("root", "temp", copy_function=shutil.copy2) total, used, free = shutil.disk_usage(".") # 给定路径的磁盘使用情况统计信息 # shutil.chown(path, user=None, group=None) // 修改用户和组 (Unix可用) # shutil.which(cmd, mode=os.F_OK | os.X_OK, path=None) // 可执行文件路径, path:要查找的路径,未指定使用os.environ的结果 path_str = shutil.which("python") # 异常 try: pass except shutil.SameFileError: pass # copyfile()时,源和目录是同一个文件时,抛此异常 except shutil.Error: pass # copytree()时, 多文件操作时引发的异常, 异常包含(srcname, dstname, excinfo) # 压缩文件操作 (封装了zipfile / tarfile) # 创建归档文件 base_name:压缩包文件名, format:格式 zip / tar / bztar / xztar / gztar, root_dir:被归档的根目录(默认当前目录) # base_dir:保存归档文件的目录(默认当前目录) verbose:已弃用 dry_run:True(不创建归档,但记录日志), owner:用户, group:用户组, logger:日志 # shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]) dst = shutil.make_archive('Box', 'zip', 'temp') # 注意:root_dir / base_dir至少写一个,不然会造成压缩包再次被打包的情况 # 分拆归档, filename:文件名, extract_dir:解压到目录(默认当前目录), format:格式 (未提供,根据扩展名查找,未找到引发ValueError) # shutil.unpack_archive(filename[, extract_dir[, format]]) shutil.unpack_archive('Box.zip') lists = shutil.get_archive_formats() # 返回支持的归档格式列表[(format, info)] lists = shutil.get_unpack_formats() # 返回所有注册格式的列表[(name, extensions, description)] # 注册压缩格式, name:格式名, function:def func(base_name, base_dir, owner, group, dry_run, logger), extra_args:额外参数, description:说明信息 # shutil.register_archive_format(name, function[, extra_args[, description]]) # shutil.unregister_archive_format(name) // 注销压缩格式 # 注册解压格式 name:格式名, extensions:扩展名列表, function:实现函数 def unpack(filename, extract_dir), extra_args:额外参数(name, value), description:说明 # shutil.register_unpack_format(name, extensions, function[, extra_args[, description]]) # shutil.unregister_unpack_format(name) // 注销解压格式 # 终端 # shutil.get_terminal_size(fallback=(columns, lines)) columns, lines = shutil.get_terminal_size() # 查询终端大小(宽, 高), 无法查询返回默认大小(80, 24) if __name__ == "__main__": shutil_demo() # shutil_func() 本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
知识点补充:
shutil 模块
shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。
拷贝文件, shutil会自动识别拷贝的到底是文件还是文件夹, 如果存在同名的文件将会自动进行覆盖。
以上就是小编给大家整理的全部相关知识点,感谢大家的学习和支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 陈思安.1990-国语钢琴酒吧5CD【欣代唱片】【WAV+CUE】
- 莫文蔚《莫后年代20周年世纪典藏》3CD[WAV+CUE][2G]
- 张惠妹《我要快乐》华纳[WAV+CUE][1G]
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]
- 海来阿木《西楼情歌》开盘母带[WAV+CUE][1.1G]
- TheGesualdoSix-QueenofHeartsLamentsandSongsofRegretforQueensTerrestrialandCele
- 王建杰2011-荣华富贵[喜玛拉雅][WAV+CUE]