Python内置模块shutil提供了一些在文件和目录管理方面非常有用的工具函数,这些工具函数可以让我们更加方便便捷地操作文件和目录。本文将围绕这个模块,详细讲解如何在Python中使用shutil实现常见的文件操作。
shutil模块简介
shutil模块是Python标准库中的一个模块,它在文件和目录管理方面提供了很多有用的函数和类。使用shutil模块,可以实现文件的复制、移动、重命名、删除等操作,还可以实现目录的压缩、解压缩、复制、移动、删除等操作。下面我们来逐一介绍这些功能。
文件和目录复制
shutil模块中提供了copy()
和copy2()
两个函数分别用于文件和目录的复制。
文件复制
copy(src_file,dst_file)
:将src_file文件复制到dst_file。
copy2(src_file,dst_file)
:将src_file文件复制到dst_file,并保留源文件的元数据(如权限、时间戳等)。
示例代码:
import shutil
# 将test.txt文件复制到test_copy.txt
shutil.copy('test.txt', 'test_copy.txt')
# 将test.txt文件复制到test_copy2.txt,并保留元数据
shutil.copy2('test.txt', 'test_copy2.txt')
目录复制
copytree(src_dir,dst_dir)
:将src_dir目录及其子目录复制到dst_dir。
示例代码:
import shutil
# 将test_dir目录复制到test_dir_copy目录
shutil.copytree('test_dir', 'test_dir_copy')
文件和目录移动
shutil模块中提供了move()
函数用于文件或目录的移动。
move(src,dst)
:将src文件或目录移动到dst。
示例代码:
import shutil
# 将test_copy2.txt文件移动到test_dir_copy目录下
shutil.move('test_copy2.txt', 'test_dir_copy/test_copy3.txt')
# 将test_dir_copy目录移动到test_dir_copy2目录下
shutil.move('test_dir_copy', 'test_dir_copy2')
文件和目录重命名
shutil模块中提供了move()
函数用于文件或目录的重命名。
move(src,dst)
:将src文件或目录重命名为dst。
示例代码:
import shutil
# 将test_copy.txt重命名为test_renamed.txt
shutil.move('test_copy.txt', 'test_renamed.txt')
# 将test_dir_copy2目录重命名为test_dir_renamed
shutil.move('test_dir_copy2', 'test_dir_renamed')
文件和目录删除
shutil模块中提供了rmtree()
函数用于删除目录及其所有子目录和文件。
rmtree(path)
:删除path目录及其子目录和文件。
示例代码:
import shutil
# 删除test_dir_renamed目录及其所有子目录和文件
shutil.rmtree('test_dir_renamed')
总结
shutil模块提供了很多方便实用的工具函数,能够较为方便地实现文件和目录的复制、移动、重命名和删除等操作。在实际开发中,需要注意函数参数的正确使用,以免造成不必要的损失。
示例1:实现图片的批量复制
import os
import shutil
# 图片文件夹路径
img_dir = '/home/xx/img/'
# 目标文件夹路径
target_dir = '/home/xx/img_copy/'
# 判断目标文件夹是否存在,不存在则创建
if not os.path.exists(target_dir):
os.mkdir(target_dir)
# 循环处理图片文件
for filename in os.listdir(img_dir):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 图片文件的绝对路径
filepath = os.path.join(img_dir, filename)
# 将图片文件复制到目标文件夹
shutil.copy(filepath, target_dir)
示例2:实现多个文件夹的批量拷贝
import os
import shutil
# 文件夹列表
dir_list = ['/home/xx/dir1', '/home/xx/dir2', '/home/xx/dir3']
# 复制到的目标文件夹路径
target_dir = '/home/xx/dir_copy/'
# 判断目标文件夹是否存在,不存在则创建
if not os.path.exists(target_dir):
os.mkdir(target_dir)
# 循环处理每个文件夹
for dirpath in dir_list:
# 获取当前文件夹名称
dirname = os.path.basename(dirpath)
# 新建目标文件夹
target_subdir = os.path.join(target_dir, dirname)
os.mkdir(target_subdir)
# 复制该文件夹下的所有文件
for filename in os.listdir(dirpath):
filepath = os.path.join(dirpath, filename)
shutil.copy(filepath, target_subdir)
以上就是关于Python shutil文件操作工具使用实例分析的详细攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python shutil文件操作工具使用实例分析 - Python技术站