目录
shutil
- 必要的导入
>>> import shutil
1. shutil.copy()
功能:复制文件
格式:
shutil.copy(来源路径, 目标路径)
- 返回值:目标路径
- 注意:在拷贝的同时,可以给文件重命名
>>> rst = shutil.copy(r"d:\tmp\text.txt", r"d:\tmp\test.txt") >>> rst 'd:\\tmp\\test.txt'
2. shutil.copy2()
功能:复制文件,保留元数据(文件信息,如创建时间、最近保存时间等)
格式:
shutil.copy2(来源路径, 目标路径)
返回值:目标路径
注意:copy 和 copy2 的唯一区别在于 copy2 复制文件时尽量保留元数据
>>> rst = shutil.copy2(r"d:\tmp\text.txt", r"d:\tmp\text.py") >>> rst 'd:\\tmp\\text.py'
3. shutil.copyfile()
功能:将一个文件中的内容复制到另外一个文件中
格式:
shutil.copyfile('源路径', '目标路径')
- 返回值:目标路径
- 注意:同名文件会被覆盖
>>> rst = shutil.copyfile(r"d:\tmp\text.py", r"d:\tmp\Python3\text.py") >>> rst 'd:\\tmp\\Python3\\text.py'
4. shutil.move()
功能:移动 文件/文件夹
格式:
shutil.move(源路径, 目标路径)
- 返回值:目标路径
>>> rst1 = shutil.move(r"d:\tmp\text.txt", r"d:\tmp\Python3") >>> rst1 'd:\\tmp\\Python3\\text.txt' >>> >>> rst2 = shutil.move(r"d:\tmp\Python2", r"d:\tmp\Python") >>> rst2 'd:\\tmp\\Python\\Python2'
5. 归档
- 归档:把多个文件或者文件夹合并到一个文件当中
5.1 shutil.make_archive()
功能:归档操作
格式:
shutil.make_archive('归档之后的目录和文件名', '后缀', '需要归档的文件夹')
- 返回值:归档之后的地址
>>> rst = shutil.make_archive(r"d:\tmp\twofiles", "zip", r"d:\tmp\Python3") >>> rst 'd:\\tmp\\twofiles.zip'
5.2 shutil.unpack_archive()
解包操作
格式:
shutil.unpack_archive('归档文件地址', '解包之后的地址')
- 返回值:无
>>> rst = shutil.unpack_archive(r"d:\tmp\twofiles.zip", r"d:\tmp\Python") >>> rst >>>
zipfile
- 必要的导入
>>> import zipfile
6. 压缩
- 压缩:用算法把多个文件或者文件夹无损或者有损合并到一个文件当中
6.1 zipfile.ZipFile()
- 格式:
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
- 创建一个 ZipFile 对象,表示一个 zip 文件
- 参数 file 表示文件的路径或类文件对象 file-like object
- 参数 mode 指示打开 zip 文件的模式
- 默认值为 ’r’,表示读已经存在的 zip 文件
- 也可以为 ’w’ 或 ’a’
- ’w’ 表示新建一个 zip 文档或覆盖一个已经存在的 zip 文档
- ’a’ 表示将数据附加到一个现存的 zip 文档中
- 参数 compression 表示在写 zip 文档时使用的压缩方法,它的值可以是
- zipfile. ZIP_STORED
- zipfile. ZIP_DEFLATED
- 如果要操作的 zip 文件大小超过 2G,应该将 allowZip64 设置为 True
>>> zf = zipfile.ZipFile(r"d:\tmp\twofiles.zip")
6.2 ZipFile.getinfo()
- 功能:获取 zip 文档内指定文件的信息
- 格式:
ZipFile.getinfo(name)
- 返回值:一个 zipfile.ZipInfo 对象,它包括文件的详细信息
>>> rst = zf.getinfo("text.txt") >>> rst <ZipInfo filename='text.txt' compress_type=deflate filemode='-rw-rw-rw-' file_size=0 compress_size=2>
6.3 ZipFile.namelist()
- 功能:获取 zip 文档内所有文件的名称列表
>>> zf.namelist() ['text.py', 'text.txt']
6.4 ZipFile.extractall()
- 格式:
ZipFile.extractall([path[, members[, pwd]]])
- 解压 zip 文档中的所有文件到当前目录
- 参数 members 的默认值为 zip 文档内的所有文件名称列表
- 也可以自己设置,选择要解压的文件名称
>>> rst = zf.extractall(r"d:\tmp\twofiles") # twofiles 可以改为任意合法的名字 >>> rst >>>
- 结果:
- d 盘下,tmp 文件夹中,多出了一个名为 twofiles 的文件夹
- twofiles.zip 中的文件已解压至 twofiles 文件夹
来源:https://www.cnblogs.com/yorkyu/p/12046239.html