首页 > 编程语言 >Python shutil 库详解

Python shutil 库详解

时间:2025-01-16 10:58:35浏览次数:3  
标签:文件 Python archive 详解 user home shutil 目录

1. shutil库概述

   简介

     shutil是Python中的一个标准库,它提供了一系列对文件和文件集合的高级操作。“shutil”这个名字是“shell utilities”(外壳工具)的缩写,它的功能类似于在shell脚本中对文件进行操作的命令,但通过Python代码来实现,使得操作更加灵活和可编程。

   导入方式

     要使用shutil库,只需在Python脚本或交互式环境中使用`import shutil`语句。例如:

     ```python

     import shutil

     ```

2. 文件复制操作

   shutil.copy()方法

     功能描述:这个方法用于将一个文件从源路径复制到目标路径。如果目标路径是一个目录,那么会在该目录下创建一个与源文件同名的文件。

     参数说明:它接受两个参数,第一个参数是源文件的路径,第二个参数是目标文件或目录的路径。例如,要将文件`/home/user/src.txt`复制到`/home/user/dest/`目录下,可以这样写:

     ```python

     import shutil

     shutil.copy('/home/user/src.txt', '/home/user/dest/')

     ```

     注意事项:如果目标路径已经存在同名文件,那么会覆盖该文件。所以在使用时要确保不会意外覆盖重要数据。

   shutil.copy2()方法

     功能描述:和`shutil.copy()`类似,不过`shutil.copy2()`还会尽可能地保留文件的元数据(如文件的访问时间、修改时间等)。

     参数说明:参数和`shutil.copy()`相同。例如:

     ```python

     import shutil

     shutil.copy2('/home/user/src.txt', '/home/user/dest/')

     ```

3. 文件移动操作

   shutil.move()方法

     功能描述:用于将文件或目录从一个位置移动到另一个位置。它可以用于重命名文件或目录,也可以将文件移动到其他目录。

     参数说明:第一个参数是源文件或目录的路径,第二个参数是目标文件或目录的路径。例如,将文件`/home/user/src.txt`移动到`/home/user/dest/`目录下并改名为`new_src.txt`:

     ```python

     import shutil

     shutil.move('/home/user/src.txt', '/home/user/dest/new_src.txt')

     ```

     注意事项:如果目标路径已经存在同名文件或目录,那么会根据具体情况进行覆盖或合并操作。当移动目录时,会递归地移动目录中的所有内容。

4. 文件和目录删除操作

   shutil.rmtree()方法

     功能描述:用于删除一个目录及其所有内容。这是一个比较危险的操作,因为一旦执行,目录下的所有文件和子目录都会被永久删除。

     参数说明:它只接受一个参数,即要删除的目录的路径。例如,要删除`/home/user/dir_to_delete`目录:

     ```python

     import shutil

     shutil.rmtree('/home/user/dir_to_delete')

     ```

     注意事项:使用时要非常小心,最好在操作之前备份重要的数据。因为没有回收站的概念,删除后很难恢复数据。

5. 文件归档操作(压缩与解压)

   shutil.make_archive()方法

     功能描述:用于创建一个归档文件(如zip、tar等格式)。它可以将一个目录及其内容打包成一个压缩文件,方便存储和传输。

     参数说明:它有多个参数,其中`base_name`是归档文件的名称(不包括扩展名),`format`是归档文件的格式(如'zip'、'tar'等),`root_dir`是要归档的目录的路径。例如,将`/home/user/dir_to_archive`目录打包成一个zip文件:

     ```python

     import shutil

     shutil.make_archive('/home/user/archive', 'zip', '/home/user/dir_to_archive')

     ```

   shutil.unpack_archive()方法

     功能描述:用于解压缩归档文件。它可以识别多种归档格式,如zip、tar等,并将文件解压到指定的目录。

     参数说明:`filename`是要解压的归档文件的路径,`extract_dir`是解压后的文件存放的目录路径。例如,解压`/home/user/archive.zip`文件到`/home/user/extracted_dir`目录:

     ```python

     import shutil

     shutil.unpack_archive('/home/user/archive.zip', '/home/user/extracted_dir')

     ```

标签:文件,Python,archive,详解,user,home,shutil,目录
From: https://blog.csdn.net/chinansa/article/details/145115107

相关文章

  • 2024年最新计算机毕业设计选题题目参考,2000+ Java毕业设计题目,值得收藏,另有python,小程
     风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。最近有很多同学咨询,说快要毕业设计了,不知道选什么题目比较好,有哪些方面是需要注意的。基于这一点,这里整理了一些java毕业设计的题目,大家可以参考一下,希望能对大家有所帮助。一、整体设计方向Java目前仍然是最......
  • 二分查找算法的3种模板-PYTHON
    classbinary_search(object):def__init__(self,nums,target):self.nums=numsself.target=targetdefbinary_search_template_1(self):iflen(self.nums)==0:return-1l,r=0,len(self.nums)-1......
  • 利用AI进行网络性能分析的详解与应用
    前言随着互联网的迅速发展,网络性能的优劣直接影响着用户体验。传统的网络性能分析方法往往依赖于人力检测与数据统计,效率不高且容易出错。而AI技术的发展为我们提供了一种全新的解决方案,借助AI,我们可以自动化、智能化地进行网络性能分析,从而提升工作效率和分析精度。什么......
  • 基于Python实现的微博用户信息爬取
    微博爬虫系列之用户信息爬取,通过Pythonrequest库实现。1. 用户ID获取可通过访问指定用户的主页获取,见下图红框(本文皆以薛之谦账号为例):2. 基本信息爬取(1)爬取接口res=requests.get("https://weibo.com/ajax/profile/info?uid="+userid,headers={"Cookie":cookie}).......
  • 利用Python实现远程心电监测系统
    前言心电图(ECG)是监测心脏健康的重要手段。随着物联网技术的发展,远程心电监测系统逐渐成为可能。这类系统可以帮助医生实时监控患者的心电数据,及时发现异常情况,提供更为及时和精准的医疗服务。本文将详细介绍如何使用Python编写一个简单的远程心电监测系统,包括数据采集、数......
  • Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)
    Linux权限详解Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机制,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的......
  • 11 多线程详解
    线程简介程序:程序就像一堆写好的指令和数据放在一起,它是静止的,不会自己动起来。进程(Process):进程是把程序真正运行起来的过程,它是动态的,系统会给它分配各种资源,比如内存等。线程(Thread):一个进程里通常会有好几个线程,最少也得有一个,不然进程就没啥用了。线程是CPU安排干活和实际......
  • 《CPython Internals》阅读笔记:p152-p176
    《CPythonInternals》学习第10天,p152-p176总结,总计25页。一、技术总结1.addinganitemtoalistmy_list=[]my_list.append(obj)上面的代码涉及两个指令:LOAD_FAST,LIST_APPEND。整章看下来这有这点算是可以记的了,其它的只感觉作者在零零碎碎的罗列内容。二、英语......
  • 线性回归超详解
    目录一、回归问题vs分类问题二、线性回归1、一句话理解2、数学推导2.1线性函数表示  2.2损失函数2.3梯度下降2.3.1什么是梯度2.3.2梯度下降目标 2.3.3过程2.3.4迭代公式3、特征预处理3.1为什么要预处理3.2数据归一化方法1)最小-最大归一化2)Z-Scor......
  • 可以用于分割字符串的方法(python)
    一、str.split(sep,maxsplit)函数(返回列表)sep:分隔符maxsplit:分割次数a="Helloworld"list1=a.split("",1)print(list1)结果:['Hello','world']二、str.rsplit(sep,maxsplit)函数(从右边开始分割,返回列表)sep:分隔符maxsplit:分割次数a="Helloworld&q......