前言
很多时候编过的代码过段时间就忘了,所以想用博文记录一下一些平时常用库的函数,今天跟大家分享一下python的shutil库的常用函数,包括文件复制、删除、移动等常见操作。同时为了复习之前python类的使用,所以今天的代码就用类封装起来了,大家直接看函数就行,不需要用我的代码。
一、 shutil库介绍
shutil
是 Python 的一个标准库,提供了很多文件操作的高级接口,包括文件复制、删除、移动等常见操作。相比于os
模块,shutil
提供了更加面向对象的方法,使得我们能够更加方便地操作文件。这个库的使用非常方便,且功能强大,能够满足你在文件操作上的大部分需求。
二、文件/文件夹的复制
每个函数的注意事项已经写在了对应函数的注释里,我就不讲解了,这个库的函数还是非常简单的,入参只有路径。只需要注意一下函数所需路径的格式即可。
# -*- coding: utf-8 -*-
"""
@Time : 2023/05/29 13:20
@Auth : RS迷途小书童
@File :Shutil Function.py
@IDE :PyCharm
@Purpose:shutil库的相关操作
"""
import shutil
class Copyfile:
# 复制文件/文件属性
def __init__(self, infile, outfile):
self.infile = infile
self.outfile = outfile
def copy_file(self):
"""
1.src为源文件路径(必须是文件),dst为目标文件路径(文件名可加可不加)
2.目标文件如存在会覆盖掉,不存在会创建新文件,包括路径
3.copy内容和权限,文件属性(时间等)没有copy
"""
shutil.copy(self.infile, self.outfile)
def copy_file1(self):
"""
1.src为源文件路径(必须是文件),dst为目标文件路径,必须包含文件名
2.目标文件如存在会覆盖掉,不存在会创建新文件,包括路径
"""
shutil.copyfile(self.infile, self.outfile)
def copy_file2(self):
"""
1.src为源文件路径,dst为目标文件路径,必须包含文件名
2.目标文件如存在会覆盖掉,不存在会创建新文件,包括路径
3.复制源文件的内容和stat信息(包含用户,组,权限,时间信息等)
"""
shutil.copyfile(self.infile, self.outfile)
def copy_file_mode(self):
"""
1.src为源文件路径,dst为目标文件路径,必须包含文件名
2.目标文件如存在会覆盖掉,不存在会报错
3.只复制源文件的权限
"""
shutil.copymode(self.infile, self.outfile)
def copy_file_stat(self):
"""
1.src为源文件路径(必须是文件),dst为目标文件路径(文件名可加可不加)
2.目标文件必须已经存在,只复制stat属性信息,包含权限,时间,组,用户等,不复制文件内容
"""
shutil.copystat(self.infile, self.outfile)
def copy_path(self):
"""
1.src为源文件路径(文件夹),dst为目标路径(必须不存在)
"""
shutil.copytree(self.infile, self.outfile, ignore=None, copy_function=shutil.copy2)
# ignore=shutil.ignore_patterns('*.txt'), copy_function=shutil.copy / copy_function=shutil.copy2
if __name__ == "__main__":
copy_instance = Copyfile("D:/彭俊喜/1.log", "Z:/2.log")
copy_instance.copy_file_stat()
三、文件/文件夹的移动和删除
每个函数的注意事项已经写在了对应函数的注释里,我就不讲解了,这个库的函数还是非常简单的,入参只有路径。只需要注意一下函数所需路径的格式即可。
# -*- coding: utf-8 -*-
"""
@Time : 2023/05/29 13:20
@Auth : RS迷途小书童
@File :Shutil Function.py
@IDE :PyCharm
@Purpose:shutil库的相关操作
"""
import shutil
class Movefile:
# 移动/删除文件
def __init__(self, infile, outfile):
self.infile = infile
self.outfile = outfile
def move_filepath(self):
"""
1.src为源文件路径,dst为目标文件路径,两者都可以是文件或者目录
"""
shutil.move(self.infile, self.outfile)
def remove_full_path(self):
"""
1.src为源文件路径
2.递归彻底删除非空文件夹
"""
shutil.rmtree(self.infile)
四、文件/文件夹的压缩和解压
文件的压缩和解压需要注意的是,多了一个压缩格式的入参。同时注意压缩和解压的入参顺序不一致!!!
# -*- coding: utf-8 -*-
"""
@Time : 2023/05/29 13:20
@Auth : RS迷途小书童
@File :Shutil Function.py
@IDE :PyCharm
@Purpose:shutil库的相关操作
"""
import shutil
class CompressFile:
# 压缩和解压文件
def __init__(self, infile, outfile, compress_type):
self.infile = infile
self.outfile = outfile
self.format = compress_type
def compress_filepath(self):
"""
1.src为源文件路径,dst为目标文件路径,两者都可以是文件或者目录.
2.不会删除源文件
"""
shutil.make_archive(self.infile, self.format, self.outfile)
# format为压缩格式,可以是"zip", "tar", "gz tar","bz tar", or "xz tar"
def decompress_filepath(self):
"""
1.src为源文件路径,dst为目标文件路径
"""
shutil.unpack_archive(self.infile, self.outfile, self.format)
# format为解压缩格式,可以是"zip", "tar", "gz tar","bz tar", or "xz tar",默认为根据源文件后缀
五、总结
标签:文件,路径,Python,self,入门教程,解压缩,outfile,shutil,infile From: https://www.cnblogs.com/RSran/p/17865310.html
shutil
是 Python 中一个非常实用的库,它提供了许多文件操作的高级接口,以及一些与文件系统有关的其他操作。这个库的使用可以帮助我们更方便地处理文件和文件夹,而不需要自己手动处理底层的文件系统调用。
shutil
库的主要功能可以分为以下几个方面:
- 文件操作:
shutil
库提供了复制、移动、删除文件等操作的高级接口,而且这些操作都是原子性的,也就是说在操作过程中如果出现问题,文件系统会保证这些操作要么全部成功,要么全部失败,不会出现只有部分操作成功的情况。- 文件夹操作:
shutil
库也提供了创建、删除、改名文件夹等操作的高级接口,同样这些操作也是原子性的。- 其他操作:
shutil
库还提供了一些其他有用的操作,比如获取文件或文件夹的信息(如大小、修改时间等)、检查文件或文件夹是否存在、获取文件或文件夹的绝对路径等。
总的来说,
shutil
库是一个非常实用的库,它可以帮助我们更方便地处理文件和文件夹。它的函数设计得非常人性化,而且文档也非常详细,使用起来非常方便。