python中shutil和shutil库的用法

一、shutil目录和文件操作

Python shutil库提供了对文件和目录复制、移动、删除、压缩、解压等操作。

1. 复制文件或目录

  • shutil.copy(src, dst):复制文件或目录
  • shutil.copyfile(src, dst):复制文件,src和dst只能是文件
  • shutil.copytree(src, dst, dirs_exist_ok=False):复制目录,默认dst目录不存在,否则会报错。

示例:

import os
import shutil

dirpath    = os.path.dirname(os.path.realpath(__file__))
sourcedir  = os.path.join(dirpath, "shutil_a")
sourcefile = os.path.join(dirpath, "shutil_a", "test.txt")        
destdir    = os.path.join(dirpath, "shutil_b")
destfile   = os.path.join(dirpath, "shutil_b", "test2.txt")
# 复制文件或目录
shutil.copy(sourcefile, destdir)        
# 复制文件
shutil.copyfile(sourcefile, destfile) 
# 复制目录
shutil.copytree(sourcedir, destfile, dirs_exist_ok=True) 

2. 移动文件或目录

语法:shutil.move(src, dst)

示例:

import os
import shutil

dirpath    = os.path.dirname(os.path.realpath(__file__))
sourcedir  = os.path.join(dirpath, "shutil_a")
sourcefile = os.path.join(dirpath, "shutil_a", "test.txt")        
destdir    = os.path.join(dirpath, "shutil_b")
shutil.move(sourcefile, destdir)
shutil.move(destdir, sourcedir)

3. 删除文件和目录

删除某个文件使用 os 模块提供的remove和unlink方法:

  • os.remove(path)
  • os.unlink(path)

删除目录使用 shutil.rmtree 方法:

import os
import shutil

dirpath    = os.path.dirname(os.path.realpath(__file__))     
destdir    = os.path.join(dirpath, "shutil_b")
shutil.rmtree(destdir)

二、shutil文件压缩、解压

shutil库也支持文件压缩、解压操作,这个功能在Python 3.2版本引入。

1. 压缩文件

语法格式:

shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])
  • base_name:压缩包文件名
  • format:压缩包格式,支持zip,tar,bztar,gztar,xztar格式,可使用shutil.get_archive_formats()方法查看
  • root_dir:要压缩文件路径的根目录(默认当前目录)
  • base_dir:相对于root_dir的压缩文件路径(默认当前目录)

示例:

import os
import shutil
#Python小白学习交流群:725638078
dirpath    = os.path.dirname(os.path.realpath(__file__))
archive_name  = os.path.join(dirpath, "shutil_a")
root_dir = archive_name
shutil.make_archive(archive_name, 'zip', root_dir)

2. 解压文件

语法格式:

shutil.unpack_archive(filename[, extract_dir[, format]])

示例:

import os
import shutil

dirpath      = os.path.dirname(os.path.realpath(__file__))
archive_name = os.path.join(dirpath, "shutil_a.zip")
extract_dir  = os.path.join(dirpath, "shutil_a")   
shutil.unpack_archive(archive_name, extract_dir, 'zip')

原文链接:https://www.cnblogs.com/xxpythonxx/p/17298705.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中shutil和shutil库的用法 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • python实现公司年会抽奖程序

    Python实现公司年会抽奖程序攻略 简介 本攻略将带你了解如何使用Python实现公司年会抽奖程序。该程序可以生成随机的中奖结果,并输出给参加活动的员工。 程序概述 该程序的实现思路如下: 导入必要的库:random,用于生成随机数 读取参加活动的员工名单,保存到一个列表中 设定中奖数量 使用random库生成中奖名单,并在名单中去重 输出中奖结果给员工 …

    python 2023年5月23日
    00
  • Python自动化测试框架pytest的详解安装与运行

    Python自动化测试框架pytest的详解安装与运行 简介 Python自动化测试框架pytest是基于 Python编程语言的一种自动化测试框架。它支持参数化测试、fixture、模块和测试运行的控制等功能。 安装pytest 在终端运行以下命令安装pytest pip install pytest 编写pytest测试用例 pytest使用assert…

    python 2023年5月13日
    00
  • Python完成哈夫曼树编码过程及原理详解

    Python完成哈夫曼树编码过程及原理详解 简介 哈夫曼编码(Huffman Coding)又称霍夫曼编码,是一种数据压缩方法。它是由David A. Huffman于1952年提出的一种编码方法,广泛应用于无损压缩领域。哈夫曼编码是一种前缀编码的变长编码方法,即每个字符的编码不是固定的比特串,而是由可变的比特串组成。它利用字符出现的概率来构建一棵特定的二叉…

    python 2023年5月31日
    00
  • python3获取url文件大小示例代码

    如何用Python3获取URL文件大小?下面是一些示例代码和技巧帮助您获得准确的文件大小。 示例代码 1. 使用urllib库 import urllib.request def get_file_size(url): headers = urllib.request.urlopen(url).headers if "Content-Length&…

    python 2023年6月3日
    00
  • django2+uwsgi+nginx上线部署到服务器Ubuntu16.04

    接下来我将为您讲解“django2+uwsgi+nginx上线部署到服务器Ubuntu16.04”的完整攻略。 准备工作 在进行上线部署前,我们需要先做好一些准备工作: 确认服务器已安装Ubuntu16.04操作系统。 安装必要的软件包,如Python3、pip、virtualenv、nginx、uwsgi和git等。 在服务器上创建项目文件夹,并将Djan…

    python 2023年6月3日
    00
  • 详细介绍Python函数中的默认参数

    当我们在定义Python函数时,可以在函数参数中设置默认值。如果函数在调用时没有传递该参数的值,函数将使用默认值作为参数值。这被称为默认参数。 默认参数的设置格式为:在定义函数时,给参数指定一个默认值即可,如下所示: def func(arg1, arg2=value): # some code here 其中,arg1是必需的参数,arg2是可选的参数,当…

    python 2023年6月5日
    00
  • python把数组中的数字每行打印3个并保存在文档中的方法

    要将Python中的数组中的数字每行打印3个并保存在文档中,可以按照以下步骤进行: 第一步:创建一个数组 在 Python 中,可以用以下语句创建一个包含数字的数组: my_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 第二步:迭代数组并打印每行3个数字 代码如下: count = 0…

    python 2023年6月6日
    00
  • python基础之集合

    以下是“Python基础之集合”的完整攻略。 1. 集合的概述 在Python中,集合是一种无序、可变的数据类型,用于存储一组不重的元素。集中的素是任意类型的数据,例如数字、字符串、元组等。集合是可变的,可以动态地添加、删除和修改素。下面介绍Python集合的相关知识点。 2. 集合的基操作 2.1 创建集合 在Python中,可以使用花括号{}或set()…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部