`

python的shutil模块

阅读更多
shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)
将文件内容拷贝到另一个文件中

import shutil

shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
shutil.copyfile(src, dst)  (copyfile只拷贝文件内容)
拷贝文件

shutil.copyfile('f1.log', 'f2.log')
shutil.copy(src, dst) 拷贝文件和权限

shutil.copy('f1.log', 'f2.log')
shutil.copy2(src, dst)

拷贝文件和状态信息

shutil.copy2('f1.log', 'f2.log'


shutil.copymode(src, dst)  (前提是dst文件存在,不然报错)
仅拷贝权限。内容、组、用户均不变

shutil.copymode('f1.log', 'f2.log')
shutil.copystat(src, dst)
仅拷贝状态的信息,即文件属性,包括:mode bits, atime, mtime, flags

shutil.copystat('f1.log', 'f2.log')


shutil.ignore_patterns(*patterns)  (忽略哪个文件,有选择性的拷贝)

shutil.copytree(src, dst, symlinks=False, ignore=None)
递归的去拷贝文件夹

shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
shutil.copytree('f1', 'f2', symlinks=True, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
shutil.rmtree(path[, ignore_errors[, onerror]])
递归的去删除文件

shutil.rmtree('folder1')
shutil.move(src, dst)
递归的去移动文件,它类似mv命令,其实就是重命名。

shutil.move('folder1', 'folder3')




shutil.make_archive(base_name, format,...)

创建压缩包并返回文件路径,例如:zip、tar

创建压缩包并返回文件路径,例如:zip、tar

base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, 如:www                        =>保存至当前路径 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir: 要压缩的文件夹路径(默认当前目录)
owner: 用户,默认当前用户
group: 组,默认当前组
logger: 用于记录日志,通常是logging.Logger对象
复制代码
#将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录

import shutil

ret = shutil.make_archive("wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')


#将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录

import shutil

ret = shutil.make_archive("/Users/wupeiqi/wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')
复制代码



shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:

复制代码
import zipfile

# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()

# 解压
z = zipfile.ZipFile('laxi.zip', 'r')
z.extractall()
z.close()
复制代码
复制代码
import tarfile

# 压缩
tar = tarfile.open('your.tar','w')
tar.add('/Users/wupeiqi/PycharmProjects/bbs2.log', arcname='bbs2.log')
tar.add('/Users/wupeiqi/PycharmProjects/cmdb.log', arcname='cmdb.log')
tar.close()

# 解压
tar = tarfile.open('your.tar','r')
tar.extractall()  # 可设置解压地址
tar.close()
复制代码

备注:zipfile压缩不会保留文件的状态信息,而tarfile会保留文件的状态信息
0
0
分享到:
评论

相关推荐

    Python shutil模块用法实例分析

    本文实例讲述了Python shutil模块用法。分享给大家供大家参考,具体如下: shutil模块 主要作用与拷贝文件用的。 1.shutil.copyfileobj(文件1,文件2):将文件1的数据覆盖copy给文件2。 import shutil f1 = open(1....

    简单了解python shutil模块原理及使用方法

    Python的`shutil`模块是高级文件操作工具,它提供了许多在`os`模块中未包含的功能,如文件和文件夹的移动、复制、打包、压缩和解压等。这个模块设计用于处理复杂的文件操作场景,让编程人员能更方便地进行文件管理。...

    Python标准库shutil模块使用方法解析

    ### Python标准库shutil模块使用方法解析 在Python的标准库中,`shutil`模块提供了高级操作文件的函数,如复制、移动、删除文件或文件夹等。这对于处理大量文件时非常有用。本文将详细介绍`shutil`模块中的几个常用...

    详解Python_shutil模块

    高级的文件,文件夹,压缩包的处理模块,也主要用于文件的拷贝 shutil.copyfileobj(fsrc,fdst[,length]): 将文件的内容拷贝到另一个文件(可以指定length长度进行拷贝) import shutil shutil.copyfileobj(open('old....

    Python shutil拷贝文件模块.docx

    Python的`shutil`模块是用于提供高级文件操作的一个实用工具集合,特别是在处理文件和目录的复制、移动、删除以及打包压缩等方面。下面我们将详细探讨`shutil`模块中的各个功能。 1. `shutil.copyfileobj(file1, ...

    python之shutil模块.docx

    Python中的`shutil`模块是高级的文件操作工具,提供了许多功能,如文件拷贝、文件夹处理、压缩包管理等。以下是对`shutil`模块中关键知识点的详细解释: 1. **`shutil.copyfile(src, dst)`**: 这个函数用于拷贝...

    Python os shutil模块设计操作文件工具合集

    该资源包含便捷复制文件、扫描目录内文件、更新目录中文件等工具; 各工具都有配置文件(config.ini), 可根据需要修改。其中,更新文件工具.py 解决了备份文件夹时需要复制整个文件夹的问题。 适合新手、中高级程序员...

    python3之sys模块以及shutil模块

    本章节介绍sys模块以及shutil模块,分享给刚学python的小伙伴,一起学习,共同进步 sys模块 import sys # 获取python的版本信息 print(sys.version) print(sys.argv) # 退出 sys.exit(1) shutil模块 import shutil ...

    python之shutil模块使用方法(三分钟了解)

    【Python之shutil模块使用方法】 在Python编程中,shutil模块是一个非常实用的工具,提供了许多高级的文件和文件夹操作,如拷贝、移动、删除、打包和压缩等。下面我们将详细探讨shutil模块的各项功能。 1. **...

    Python标准库shutil用法实例详解

    shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能。 文件夹与文件操作 copyfileobj(fsrc, fdst, length=16*1024): 将fsrc文件内容复制至fdst文件,length为fsrc每次读取的...

    Python os shutil模块设计更新目录小工具

    这是使用python os和shutil库设计的更新目录工具, 可更新被修改过的目录, 适用于文件备份, 简便易用, 解决了备份文件夹时需要复制整个文件夹的问题。 该程序目前已修复多个bug。 用法: 更新文件工具.py [源目录] ...

    Python使用shutil模块实现文件拷贝

    在Python编程中,`shutil`模块是一个非常实用的工具,它提供了许多高级的文件和文件集合操作。本文将深入探讨如何使用`shutil`模块实现文件和目录的拷贝、移动、删除以及压缩等操作。 1. `shutil.copyfileobj()`: ...

    Python中shutil模块的常用文件操作函数用法示例

    ### Python中shutil模块的常用文件操作函数用法示例详解 #### 概述 `shutil`模块作为Python标准库的一部分,为开发者提供了比`os`模块更加强大的文件和目录操作功能。该模块主要关注于文件级别的高级操作,如文件的...

    Python 文件处理 15_shutil模块_文件和目录拷贝.mp4

    Python 文件处理 15_shutil模块_文件和目录拷贝.mp4

    Python的shutil模块中文件的复制操作函数详解

    ### Python的shutil模块中文件的复制操作函数详解 在Python中,`shutil`模块提供了高级别的文件操作服务,其功能比`os`模块更为强大。本篇文章将重点介绍`shutil`模块中用于文件复制操作的主要函数:`copy()`, `...

    python shutil文件操作工具使用实例分析

    Python的`shutil`模块是Python标准库中用于高级文件操作的一个重要工具,它提供了许多在操作系统层面进行文件和文件夹处理的实用函数。本文将深入解析`shutil`模块中的一些关键函数,并通过实例来展示它们的用法。 ...

Global site tag (gtag.js) - Google Analytics