IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python自动化整理计算机文件(一)文件分类 -> 正文阅读

[Python知识库]python自动化整理计算机文件(一)文件分类

在日常工作中操作计算机时会接触大量不同格式的文件,为方便检索文件,可以使用Python对其进行自动化整理,本文介绍如何通过python编程完成文件的自动分类,文件和文件夹的快速查找,重复文件的清理,图片格式的转换等常用工作。

一、文件的自动分类
如果工作中在同一文件夹中存在大量不同格式的文件,久而久之文件夹会变得杂乱无章,不利于文件检索查找。因此我们可以用Python编写程序,实现根据文件的扩展名将文件分类整理到不同的文件夹中
下图所示为用于举例的文件夹“要分类的文件”,可以看到该文件夹中的扩展名多种多样,有py、pbix、docx等。
在这里插入图片描述
Python的灵活性强,所以可以使用多种方法来实现文件的自动分类处理
1、使用os和shutil模块
os和shuti模块是python的内置模块

import os
import shutil
src_folder = 'F:\\代码文件\\自动化整理计算机文件\\要分类的文件\\'
des_folder = 'F:\\代码文件\\自动化整理计算机文件\\分类后的文件\\'
files = os.listdir(src_folder)
for i in files:
	src_path = src_folder + i
	if os.path.isfile(src_path):
		des_path = des_folder + i.split('.')[-1]
		if not os.path.exists(des_path):
			os.makedirs(des_path)
		shutil.move(src_path, des_path)
		print('文件:'+i+'已移动到'+des_path)

os模块是用于和操作系统交互的一个内置模块,它提供了许多操作文件和文件夹的函数 ,可对文件或文件夹进行新建、删除、查看属性及查找路径等操作,除了使用os模块,其子模块path中的函数也是经常用到的。
shutil模块也是Python的一个内置模块,它提供函数对文件或文件夹进行移动,复制,压缩等操作。
代码第一,第二行用于指定要处理的源文件夹路径和存放处理后文件的目标文件夹路径
第三行os.listdir(src_folder)用于列出指定路径下的所有文件和子文件夹的名称。其中listdir()是os模块中的一个函数,其功能是返回指定文件夹下的所有文件和子文件夹的名称列表。但请注意listdir()函数返回的只是文件名,并不是文件完整路径。
获取了文件列表,通过遍历文件列表,然后使用if语句判断文件夹是否存在以文件扩展名命名的文件夹,如果不存在,则新建文件夹,再将文件移动到对应的文件夹中。
src_path = src_folder + i是将源文件夹路径与列表中的文件名拼接起来,当然也可以使用os.path.join(src_folder, i),此函数将两字符串中间以路径符进行拼接,若使用join时,记得将src_folder改为’F:\代码文件\自动化整理计算机文件\要分类的文件’
目标文件夹路径的生成用到了split函数,通过将文件名分隔符将文件名字符串拆分为列表从而得到列表最后一个元素即为扩展名,以扩展名命名目标文件夹去归类文件
os.path.exists函数用于判断目标文件夹是否已经被创建过,如果不存在则使用makedirs函数进行目标文件夹的创建。
最后用shutil.move函数将文件移动到目标文件夹中

2、使用pathlib模块
pathlib模块也可以用来完成文件和文件夹路径的相关操作。pathlib模块从Python3.4开始引入,到Python3.6功能基本成熟,它以面向对象的思想来操作路径,使用灵活。

from pathlib import Path
src_folder = 'F:\\代码文件\\自动化整理计算机文件\\要分类的文件\\'
des_folder = 'F:\\代码文件\\自动化整理计算机文件\\分类后的文件\\'
files = src_folder.glob('*')
for i in files:
	if i.is_file():
		des_path = des_folder / i.suffix.strip('.')
		if not des_path.exists():
			des_path.mkdir(parents = True)
		i.replace(des_path / i.name)

pathlib模块中的Path()函数,后面会用它创建路径对象。导入模块后,接着列出文件夹中要分类的所有文件的文件名。
使用路径对象的glob()函数可以在源文件夹下查找文件和子 文件夹,而listdir()函数返回的只是文件和子文件夹名称,而这里使用的glob()函数返回的则是文件和子文件夹的完整路径。并且glob()函数还支持利用通配符查找符合特定规则的文件或文件夹:‘*’可以匹配任意数量个(包括0个)字符,“?”可以匹配单个字符,“[]”可以匹配指定范围内的字符。
is_file()函数判断路径是否代表一个文件,如果是文件才进行后续操作。
路径对象的suffix属性提取文件的扩展名,得到类似‘.docx’,‘.xlsx’的字符串,再用字符串的strip()函数去除’.’,最后用pathlib模块特有的路径拼接运算符"/",将目标文件夹路径与扩展名字符串拼接起来。
使用路径对象的replace()函数将文件移动到与其扩展名对应的文件夹中。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:58:19  更:2022-09-15 01:58:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:35:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码