shutil库:Python高级文件操作(二)

简介: shutil库:Python高级文件操作(二)

删除整个文件夹


既然有复制整个文件夹,那么肯定shutil库也会提供反向的操作用于删除整个文件夹。删除整个文件夹的函数为:rmtree()。

import shutil
shutil.rmtree('./text_copy')


这样,我们就删除了上面复制的文件夹内容。


移动文件夹或文件


除了复制文件与文件夹之外,我们在实际的项目中,还会移动整个某个文件或某个目录到另一个位置,shutil库提供了move()函数用于移动文件或文件夹。


示例如下:

import shutil
shutil.move('week.csv', './text')


这里,我们将csv文件移动到了刚才用于复制的text源文件目录。(移动文件夹一样操作,只是将文件名改为文件夹名)


查找文件


在更多的文件操作中,我们往往还需要查找某个文件。而shutil库提供了which()函数用于搜索查找目标文件。它有3个参数:mode可以设置查找文件的权限,path为需要查找的路径,cmd为要查找的文件。


示例如下:

import shutil
filename = shutil.which('python')
print(filename)


运行之后,效果如下:


归档


shutil库提供了更多高层函数来创建和解压归档文件。我们先来看看shutil库支持哪些格式,示例如下:

import shutil
for format,desc in shutil.get_archive_formats():
    print('{:<5}:{}'.format(format,desc))


运行之后,效果如下:


简单的理解就是支持的压缩格式。


压缩文件

我们先来看一个简单的例子,将某个文件夹进行压缩,代码如下:

import shutil
shutil.make_archive('text','gztar',root_dir='..',base_dir='base_demo')


这里我们将text文件夹,压缩格式为gztar。运行之后,效果如下:

其中,root_dir指定要压缩的路径根目录(默认当前目录),只能指定路径,优先级低于base_dir。base_dir指定要压缩文件的路径,可以指定路径下的文件名,也可以指定路径。


解压缩

既然有压缩,肯定也就有解压缩。shutil库提供了unpack_archive()进行解压缩文件。示例如下:

import shutil
shutil.unpack_archive('text.tar.gz',extract_dir='text_un')


unpack_archive()函数的第1个参数为需要解压的文件,第2个参数为需要解压到哪里。


文件系统空间


完成一个长时间运行的可能耗尽可用空间的操作之前,最好先检查本地文件系统,来看看有多少可用的空间。shutil库提供了disk_usage()函数来返回包括总空间,当前正在使用的空间以及未使用的空间。


示例如下:

import shutil
(total, used, free) = shutil.disk_usage("E:/")
BytesPerGB = 1024 * 1024 * 1024
print ("Total: %.2fGB" % (float(total)/BytesPerGB))
print ("Used: %.2fGB" % (float(used)/BytesPerGB))
print ("Free: %.2fGB" % (float(free)/BytesPerGB))


运行之后,效果如下:


这里博主是获取电脑E盘的信息,比如这里获取到E盘总大小total为238G,已使用Used为43G,未使用Free:194G。一个健壮的程序必然很严谨,所以在操作文件时,特别是比较大的文件时,一定要判断磁盘的大小之后再操作。

相关文章
|
7天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python这些库和框架哪个更好
【9月更文挑战第2天】python这些库和框架哪个更好
19 6
|
7天前
|
机器学习/深度学习 数据采集 算法框架/工具
python有哪些常用的库和框架
【9月更文挑战第2天】python有哪些常用的库和框架
14 6
WK
|
7天前
|
数据采集 XML 安全
常用的Python网络爬虫库有哪些?
Python网络爬虫库种类丰富,各具特色。`requests` 和 `urllib` 简化了 HTTP 请求,`urllib3` 提供了线程安全的连接池,`httplib2` 则具备全面的客户端接口。异步库 `aiohttp` 可大幅提升数据抓取效率。
WK
22 1
WK
|
10天前
|
机器学习/深度学习 数据采集 算法框架/工具
Python那些公认好用的库
Python拥有丰富的库,适用于数据科学、机器学习、网络爬虫及Web开发等领域。例如,NumPy和Pandas用于数据处理,Matplotlib和Dash用于数据可视化,Scikit-learn、TensorFlow和PyTorch则助力机器学习。此外,Pillow和OpenCV专长于图像处理,Pydub处理音频,Scrapy和Beautiful Soup则擅长网络爬虫工作
WK
18 4
|
9天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
32 1
|
10天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python中的数据可视化:使用Matplotlib库绘制图表
【8月更文挑战第30天】数据可视化是数据科学和分析的关键组成部分,它帮助我们以直观的方式理解数据。在Python中,Matplotlib是一个广泛使用的绘图库,提供了丰富的功能来创建各种类型的图表。本文将介绍如何使用Matplotlib库进行数据可视化,包括安装、基本概念、绘制不同类型的图表以及自定义图表样式。我们将通过实际代码示例来演示如何应用这些知识,使读者能够轻松地在自己的项目中实现数据可视化。
|
10天前
|
数据采集 程序员 测试技术
比 requests 更强大 Python 库,让你的爬虫效率提高一倍!
比 requests 更强大 Python 库,让你的爬虫效率提高一倍!
|
存储 Python
Python文件操作指南:编码、读取、写入和异常处理
Python文件操作指南:编码、读取、写入和异常处理
308 0
|
Python
Python | 文件操作和异常处理
Python | 文件操作和异常处理
151 0
|
Python 小程序 NoSQL
Python学习(23)--文件操作2与异常处理
Python学习(23)--文件操作2与异常处理 这一节我们将会继续介绍有关文件操作的内容,Python中的os模块为我们提供了许多操作文件的函数,我们将一一介绍这些函数的功能意义及使用方法。在我们对文件操作时,程序可能会因为某些逻辑错误而中断,比如我们打开一个文件时,硬盘上并不存在这个文件,就会报一个IOError的错误信息,这就是Python中的异常,本节将介绍这些异常以及异常的处理。
1721 0