python的shutil模块_Python之shutil模块

shutil模块是高级的文件操作模块。之前学习的os模块之提供了对文件和目录进行一些简单的操作 功能。但是像---移动、复制、打包、压缩、解压等功能os模块都没有提供。shutil模块其实是对os模块的补充。下面我们简单的介绍一下shutil模块的使用。

1、shutil的复制功能

shutil.copyfileobj(fsrc, fdst[,length=16*1024])

功能:复制一个文件的内容到另一个文件中,可以copy指定大小的内容

48304ba5e6f9fe08f3fa1abda7d326ab.png

def copyfileobj(fsrc, fdst, length=16*1024):while 1:

buf=fsrc.read(length)if notbuf:breakfdst.write(buf)

注意:源码中的fsrc,fdst都是一个文件对象,都需要先打开然后才能进行复制操作

示例:importshutil

f1= open('file1', 'r')

f2= open('file2', 'w+')

shutil.copyfileobj(f1, f2, length=16*1024)

48304ba5e6f9fe08f3fa1abda7d326ab.png

shutil.copyfile(src, dst)

功能:复制文件内容,其实copyfile()方法调用的就是copyfileobj方法。他的内部会帮我们打开文件

示例:

import shutil

shutil.copyfile('file1', 'file2')

shutil.copymode(src, dst)

功能:复制文件权限,不更改文件内容、组和用户。其实就是将一个文件的权限复制给另一个文件

示例:

import shutil

shutil.copymode('file1', 'file2')

注意:这个方法必须要求目标文件一定要存在,否则会报错。

shutil.copystat(src, std)

功能:复制文件的所有状态信息,例如:权限、用户、组、时间等

shutil.copy(src, dst)

功能:复制文件的内容及权限,先copyfile后在copymode

shutil.copy2(src, dst)

功能:复制文件的内容以及文件的所有状态信息。先copyfile然后在copystat

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False)

功能:递归的复制文件的内容以及状态信息,其实就是复制目录。

2、删除文件及目录

shutil.rmtree(path, ignore_errors=False, οnerrοr=None)

功能:递归的删除文件,也可以删除目录

3、移动文件及目录

shutil.move(src, dst)

功能:递归的移动文件

4、压缩打包文件

shutil.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', 'bztar', 'gztar'

root_dir:将哪个目录或文件压缩打包(也就是源文件)

示例:

import shutil

shutil.make_archive('result', 'gztar', root_dir='./lib')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`shutil` 模块Python 中用于对文件和文件夹进行操作的标准库之一。它提供了一些简单而又强大的函数,使得文件和文件夹的复制、移动、删除等操作变得非常容易。 下面是一些常见的 `shutil` 模块中的函数及其用法: 1. `shutil.copy(src, dst)`:将文件从源路径复制到目标路径。如果目标路径是一个文件,则覆盖该文件;如果目标路径是一个目录,则在该目录下创建同名文件并复制。 ```python import shutil src_path = "source_file.txt" dst_path = "destination_file.txt" shutil.copy(src_path, dst_path) ``` 2. `shutil.copy2(src, dst)`:与 `shutil.copy()` 类似,但还会复制文件的元数据(如创建时间、修改时间等)。 ```python import shutil src_path = "source_file.txt" dst_path = "destination_file.txt" shutil.copy2(src_path, dst_path) ``` 3. `shutil.move(src, dst)`:将文件或目录从源路径移动到目标路径。如果目标路径是一个文件,则覆盖该文件;如果目标路径是一个目录,则在该目录下创建同名文件或目录并移动。 ```python import shutil src_path = "source_file.txt" dst_path = "destination_file.txt" shutil.move(src_path, dst_path) ``` 4. `shutil.rmtree(path)`:递归删除一个目录及其内容。 ```python import shutil dir_path = "directory_to_delete" shutil.rmtree(dir_path) ``` 5. `shutil.make_archive(base_name, format, root_dir)`:创建一个压缩包,并返回压缩包的文件路径。`base_name` 是压缩包的文件名,`format` 是压缩包的格式(如 "zip"、"tar" 等),`root_dir` 是要打包的根目录。 ```python import shutil dir_to_archive = "directory_to_archive" archive_name = "archive" archive_format = "zip" shutil.make_archive(archive_name, archive_format, dir_to_archive) ``` 以上是 `shutil` 模块中常用的一些函数,更多函数可以查看 Python 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值