如何使用Python进行批量文件整理

 引言 

批量文件整理一直是日常工作中令人头疼的事,使用 Python 进行大批量文件整理,可以大大提升工作效率。下面来介绍几种批量文件整理的小技巧。

难度:⭐⭐

一、准备工作

为了用于实验,我们使用代码生成 200 个 txt 文件,代码如下。

for i in range(0, 200):file_name = f'file_{i}.txt'f = open(f'./file/{file_name}', mode='w')f.close()

运行结果:

二、制作 excel 的文件清单

1、思路

获取文件名,并将序号和文件名写入 excel。

2、openpyxl 安装

本文使用 openpyxl 库进行 excel 操作,使用 pip 进行安装。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl

3、代码

from openpyxl import load_workbook
import os# 获取file路径所有txt文件
def find_txt(path):filenames = []filename_listdir = os.listdir(path)for filename in filename_listdir:if filename.find('txt') != -1:filenames.append(filename)return filenames# 生成文件清单
def add_data(excel_path, filenames):# 判断excel文件是否存在if os.path.exists(excel_path) is False:print(excel_path + ' 文件不存在,请重试')exit()excel_file = load_workbook(excel_path)  # 打开excel文件excel_sheet = excel_file['Sheet1']  # 选择Sheet1# 增加表头excel_sheet.cell(row=1, column=1, value='序号')  # 序号excel_sheet.cell(row=1, column=2, value='文件名')  # 文件名# 添加文件名count = 1for i in filenames[0:]:count = count + 1excel_sheet.cell(row=count, column=1, value=count - 1)  # 序号excel_sheet.cell(row=count, column=2, value=i)  # 文件名excel_file.save(excel_path)# 文件所在文件夹
file_path = './file'
# 【文件清单.xlsx】路径
excel_path = os.getcwd() + '/file/文件清单.xlsx'
filenames = find_txt(file_path)
print(filenames)
add_data(excel_path, filenames)
print('Success!')

运行结果:

三、文件的批量重命名

1、文件名批量增加序号

在文件整理统计时,经常要给文件名添加序号,在上面保存文件清单的过程,我们可以看到脚本的默认排序保存是按首位数字排序,在此我们可以通过补零来保证按数字大小排序。

1)重命名函数:

os.rename(name, new_name)

2)代码

import ospath = os.getcwd() + '\\file'
filenames = os.listdir(path)a = 1
for filename in filenames:if filename.find('txt') != -1:old_dir = f'{path}\\{filename}'if a < 10:new_dir = f'{path}\\00{a}-{filename}'elif a < 100:new_dir = f'{path}\\0{a}-{filename}'else:new_dir = f'{path}\\{a}-{filename}'os.rename(old_dir, new_dir)a = a + 1

3)运行结果

2、文件名批量重命名成指定文件名

我们在制作文件清单后,可以使用excel进行便捷的文件名统一调整(如去空格,增加头尾字段等)。我们可以在excel中制作好修改后的文件名后,再批量将文件名重命名。

1)实验目标

如图:我们尝试将文件名改成新文件名(使用 excel 的将 file 替换成filename )。

2)代码

from openpyxl import load_workbook
import os# 获取file路径文件名
def find_txt(path):filenames = []filename_listdir = os.listdir(path)for filename in filename_listdir:if filename.find('txt') != -1:filenames.append(filename)return filenames# 批量重命名
def change_file_name(file_path, excel_path, filenames):data = load_workbook(excel_path)sheet = data['Sheet1']for i in range(1, sheet.max_row + 1)[1:]:for filename in filenames:if filename == sheet.cell(i, 2).value:old_dir = os.path.join(file_path, filename)new_dir = os.path.join(file_path, sheet.cell(i, 3).value)os.rename(old_dir, new_dir)else:pass
# 文件所在文件夹
file_path = './file'
# 【文件清单.xlsx】路径
excel_path = os.getcwd() + '/file/文件清单.xlsx'
filenames = find_txt(file_path)
print(filenames)
change_file_name(file_path, excel_path, filenames)
print('Success!')

运行效果:

四、文件的批量删除

1、实验目标

我们在excel对文件名进行筛选后,将是否删除列为1的文件删除,保留为0的文件(如图)。

2、代码

from openpyxl import load_workbook
import os# 获取file路径文件名
def find_txt(path):filenames = []filename_listdir = os.listdir(path)for filename in filename_listdir:if filename.find('txt') != -1:filenames.append(filename)return filenames# 批量重命名
def change_file_name(file_path, excel_path, filenames):data = load_workbook(excel_path)sheet = data['Sheet1']for i in range(1, sheet.max_row + 1)[1:]:for filename in filenames:if filename == sheet.cell(i, 2).value:file_dir = os.path.join(file_path, filename)delete_flag = sheet.cell(i, 3).valueif delete_flag:os.remove(file_dir)else:pass
# 文件所在文件夹
file_path = './file'
# 【文件清单.xlsx】路径
excel_path = os.getcwd() + '/file/文件清单.xlsx'
filenames = find_txt(file_path)
print(filenames)
change_file_name(file_path, excel_path, filenames)
print('Success!')


今日美图

如果你觉得文章还不错,请 点赞、评论、收藏、关注 ,下期内容很快更新。

用Python进行批量文件整理相关推荐

  1. 如何使用Python进行批量文件整理

    一.准备工作 为了用于实验,我们使用代码生成 200 个 txt 文件,代码如下. for i in range(0, 200):file_name = f'file_{i}.txt'f = open ...

  2. python工具 - 批量文件重命名

    日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下python工具可以协助批量修改文件名. 场景:某文 ...

  3. 手把手教你用Python实现批量文件的压缩处理

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 近乡情更怯,不敢问来人. 一.前言 ...

  4. Python对批量文件进行VAD检测和分段

    准备: python2.7/3.+   webrtcvad import collections import contextlib import sys import wave import os ...

  5. python office自动化_Python office automation:文档,python,自动化,办公,文件,篇,整理,一键,完成...

    文件整理不得不先提一下正则表达式 送上链接: python :re模块基本用法 一.列出文件夹下的所有文件 os.walk()用法 [ (当前目录列表),(子目录列表),(文件列表)]os.walk( ...

  6. Python+pywin32批量转换Word文件为PDF文件

    代码功能:把当前文件夹中多个Word文件批量转换为PDF文件 技术原理:代码实际上是调用了Word的"导出"功能,模拟了手工转换的操作并实现了自动化,要求已正确安装Python扩展 ...

  7. 高效率整理电脑上的文件:清理电脑文件方案需要 -- 合理的方法 + 合适的工具如Python查找重复文件

    有效管理电脑文档 出发点 推荐一适合大众用户的省时好用懒人方法 管好文件的基础 一. 数据/文件的分类 二. 数据/文件存放的地方 三. 数据/文件名称和文件夹名称的规范和技巧 查询重复文件的工具和方 ...

  8. python读取txt文件为dataframe,python批量读取txt文件为DataFrame

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  9. python实现批量移动文件到指定文件夹

    python实现批量移动文件到指定文件夹 因为前几天在整理数据集文件夹,需要将580多份120个文件移动到新建的文件夹中进行循环读取,也下载了不少软件试用,发现很多都需要会员才能处理大量文件,索性就自 ...

最新文章

  1. python图像编程:实现弹球游戏
  2. bash-shell--高级编程
  3. android bilibili搜索框,仿bilibili搜索框效果(三句代码实现)
  4. java函数只有参数类不一样_java的函数参数传递
  5. 注解Annotation的IoC:从@Autowired到@Component
  6. Spring: Spring 从xml获取bean
  7. Jmeter HTTP Cookie管理器的使用
  8. [NOIP2017 普及组] 成绩
  9. 数据库设计——手机售卖系统(带源码)
  10. 4年计算机博士读下来的一些感触
  11. 为何延时函数不起作用?
  12. visio设置页元素组
  13. 神兽归笼,又是一波斗智斗勇?这款QLED电视机让你带娃更省心
  14. rem、em、px、rpx、vw、vh、%等
  15. bugzilla 缺陷报告功能改造
  16. PCA(Principal Components Analysis)
  17. 手机端页面 自适应解决方案-收集
  18. centos搭建视频服务器--搭建http服务器
  19. 钉钉企业微信集成免登录
  20. pycharm中配置VLfeat0.9.20和PCV实现Sift算法

热门文章

  1. 组播三案之(一)IGMP去哪了?
  2. 黑马 最最新 项目视频
  3. 谷歌chrome浏览器扩展Fatkun图片批量下载
  4. eclipse集成wtk,配置j2me
  5. 汽车变速箱前后面孔系钻削攻丝组合机床设计 (生产率计算卡 论文 CAD图纸……)
  6. 基于单片机的压力流量报警器(附代码+仿真+论文)
  7. 设置键盘一键打开网易云音乐
  8. 使用cocos2dx实现碎片炸裂 P2(凹多边形的三角切割算法)(修订1)
  9. 你离熟练重装系统可能只差了一个PE启动盘?
  10. Intellij ideaIU 常用配置