文章目录

  • 可能需要的库:
  • ==========================
  • 在此文中 你可以得到的封装方法有:
    • 1.根据任意页数平均拆分一个PDF文件
    • 2.批量删除文件名中的任意字符
    • 3.将文件列表以阿拉伯数字重排序
    • 4.根据Excel两列数据批量修改文件名(oldname、newname)
  • 写在最后:上面的每一个方法都可以独立使用,按序使用则可以解决“拆分-对拆分后的文件重命名”

可能需要的库:

from PyPDF2 import PdfFileReader, PdfFileWriter
import os
import pandas as pd
import shutil
import re

若没有自行 pip install

==========================

在此文中 你可以得到的封装方法有:

1.根据任意页数平均拆分一个PDF文件

pdf_input  ='大文件路径'
path_output='输出拆分文件的路径'
num_file   =要拆成几份pdf(数字)
num_page   =每份pdf平均几页(数字)
def pdf_split_3(pdf_input, path_output, num_file, num_page):fname = os.path.splitext(os.path.basename(pdf_input))[0]  # 获取文件名,不含后缀名for i in range(num_file):  #num_file要拆分的文件数with open(pdf_input, 'rb') as open_pdf:  # rb二进制打开读取,wb二进制打开写入pdf_reader = PdfFileReader(open_pdf)pdf_writer = PdfFileWriter()if (i+1)*num_page <= pdf_reader.numPages:for page in range(i*num_page, (i+1)*num_page):pdf_writer.addPage(pdf_reader.getPage(page))# output_filename = path_output + r'\{}{}.pdf'.format(fname,i+1)output_filename = path_output + r'\{}{}.pdf'.format(fname,i+1)# output_filename = os.path.join(path_output, '{}_{}.pdf'.format(fname,i+1))  # 等价else:for page in range(i*num_page, pdf_reader.numPages):pdf_writer.addPage(pdf_reader.getPage(page))#  output_filename = path_output + r'\{}_{}.pdf'.format(fname,i+1)output_filename = path_output + r'.pdf'.format(fname,i+1)# output_filename = os.path.join(path_output, '{}_{}.pdf'.format(fname,i+1))  # 等价with open(output_filename, 'wb') as out:pdf_writer.write(out)print('拆分成功!!')

2.批量删除文件名中的任意字符

dirPath =需要批量修改的文件目录
pattern='需要删去的字符'(记得加引号)
def Delet_File_Name(dirPath,pattern):""":param dirPath: 文件夹路径:param pattern: 正则匹配模式:return:"""# 对目录下的文件进行遍历for file in os.listdir(dirPath):# 判断是否是文件if os.path.isfile(os.path.join(dirPath, file)) == True:# 用正则匹配,去掉不需要的词newName = re.sub(pattern, "", file)# 设置新文件名newFilename = file.replace(file, newName)# 重命名os.rename(os.path.join(dirPath, file), os.path.join(dirPath, newFilename))print('文件名中的['+pattern+']已删除成功')

3.将文件列表以阿拉伯数字重排序

仅适用于文件名仅为阿拉伯数字的情况
做这一步的目的是,python获取的文件List默认以(1,10,11,12…,2,20)的顺序进行排序
此方法重新调整获取到的文件名顺序为(1,2…10,11,12)

若不进行此步重排序 第4步的改名会因乱序导致错误

PS:方法中的新文件名可以进行自由修改,这里默认《segment+新序号》

dirPath='文件目录'
# 重新调整文件名顺序为(1,2…10,11) 而不是Python默认的(1,10,11,12…,2,20)
def reorder_File_Name(dirPath):fileList=os.listdir(dirPath)#get_key是sotred函数用来比较的元素,该处用lambda表达式替代函数。get_key = lambda i : int(i.split('.')[0])new_sort = sorted(fileList, key=get_key)#print(fileList, '\n', new_sort)n = 0for i in fileList:# 设置旧文件名(就是路径+文件名)oldname = dirPath + os.sep + new_sort[n]  # os.sep添加系统分隔符# 设置新文件名newname = dirPath + os.sep + 'segment' + str(n + 1)+'.pdf'os.rename(oldname, newname)  # 用os模块中的rename方法对文件改名# print(oldname, '   ======>  ', newname)n += 1print("文件名重排序成功,目前均为 [segment+序号]")

4.根据Excel两列数据批量修改文件名(oldname、newname)

其中excel中的数据要这样:

excelname=存有新老文件名的excel路径
dirPath  =老文件们所在的目录
def rename_according_to_xlsx(excelname, dirPath):data = pd.read_excel(excelname, sheet_name='Sheet1')  # 读取同一个表格中指定 Sheet1 中的数据,不指定时直接默认读取到这个Excel的第一个表单# 遍历该文件夹所有的文件,并for循环for name in os.listdir(dirPath):# 文件名加上文件夹构成绝对路径before_file = os.path.join(dirPath, name)# 获取当前文件名所在行index = data.loc[data['oldname'] == name]# print("2=", index)# 当前文件所对应的新名称new_name = index['newname'].valuesif len(new_name):# index['code'].values 为当前文件名所对应的新名称after_file = os.path.join(dirPath, new_name[0])# 利用shutil.move将文件移动到原来位置(重命名的效果)shutil.move(before_file, after_file)else:breakprint("根据excel内容所有文件名称修改完成!!!")

写在最后:上面的每一个方法都可以独立使用,按序使用则可以解决“拆分-对拆分后的文件重命名”

如何用python 对PDF进行拆分,批量修改文件名(根据excel表格)相关推荐

  1. 批量提取文件名到excel,批量提取文件名到excel表格

    如何批量提取文件名到excel表格?工作中我们经常需要将一些文件的名称提取到excel表格里面,一般我们采用两种提取方法:文件数量不多的时候(比如几十个),只需要一个一个复制然后粘贴到excel文件表 ...

  2. Python笔记4 实例之批量修改文件名

    一个简单的实现批量修改文件名的例子,以司徒TX的代码为蓝本. http://www.cnblogs.com/rubylouvre/archive/2011/07/26/2117239.html uli ...

  3. python批量修改文件名为excel中指定名称_在Python脚本的帮助下,使用excelsh中的名称映射重命名文件夹中的文件名...

    在一个文件夹中有许多CSV文件我想重命名.有一个excel工作表,其中包含要重命名为文件夹的文件名.在 文件夹中的文件名为 测试数据?30四月.csv在 测试数据?20四月.csv在 测试数据18四月 ...

  4. 电脑文件管理,批量提取文件名到excel表格,一招搞定

    文件素材太多,如何快速重命名,或者提取文件名到表格中保存呢?今天小编给大家分享一个新的处理技巧,下面一起来试试吧. 需要哪些工具? 文件素材若干 怎么快速提取? 打开[文件批量改名高手],小编今天测试 ...

  5. python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...

  6. python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...

  7. python批量修改文件名

    python之批量修改文件名 文章目录 python之批量修改文件名 前言 一.python批量修改文件名 1.源码 二.python批量修改文件名(按顺序) 1.源码 三.python批量修改文件名 ...

  8. 如何批量提取文件名到excel表

    如何批量提取文件名到excel表?前段时间有个粉丝向我求助,他遇到一个棘手的工作,需要将大量文件的名称提取出来,放到excel表格里然后整理.但是问文件数量太多了,不知道如何一次性将文件名提取到exc ...

  9. 如何批量复制文件名到excel?

    如何批量复制文件名到excel?加入某个文件夹内保存有大量的文件,现在因为需要对文件进行归档整理,需要将所有文件名全部复制粘贴到excel表格中,你是否有快速批量的复制方法呢?不然一个一个的复制然后粘 ...

  10. 批量提取文件名到excel?

    批量提取文件名到excel?很多人在文件整理过程中,需要将大量的文件名称提取到excel表格里,然后再对excel表格做下一步处理或者进行存档管理,如果你从事的是文件管理工作,那么肯定经常需要提取文件 ...

最新文章

  1. 3行Python代码就能获取海量数据?
  2. python装饰器实现对异常代码出现进行监控
  3. django3.2.8配置使用mysql
  4. 2018/Province_Java_C/1/哪天返回
  5. 详细解读CSS链接属性——Web前端系列学习笔记
  6. MySql随笔part3 表操作
  7. java javadoc_使用Java 9向Javadoc搜索添加术语
  8. Centos7 使用Docker 部署Tomca+mysql+调试联通_02
  9. Tensorflow学习笔记4:分布式Tensorflow
  10. 雷军:小米生死靠技术!
  11. 使用加密签名时遇到的一个问题
  12. J2EE开发系列教程-J2EE视频教程 实例
  13. 仓库入库出库管理软件 PDA盘点软件功能太强大了 兼容大多数PDA手持终端
  14. gbk与gb2312并不一样
  15. 「Golang」sync.Once用法以及源码讲解
  16. 2019年新个税计算器及源代码
  17. lua unpack php,Lua 可变参数 和 table.unpack() 函数
  18. 企查查如何在线查询失信企业?
  19. html 表单 设计编辑器,可视化页面编辑器的架构设计
  20. 计蒜客 - 蒜头君的任务

热门文章

  1. Python读取scel文件
  2. 扎克伯格是如何让员工学会高效工作的?
  3. 周记0053:0054
  4. WIFI小车记录四:用Adobe Illustrator绘制应用磁贴
  5. 个人陈述 计算机专业,研究生个人陈述范例,计算机专业
  6. 读书笔记之稻盛和夫自传
  7. 回顾计算机主板中南北桥的作用
  8. 基于主从博弈的智能小区代理商定价策略及电动汽车充电管理
  9. Safari 兼容问题累积
  10. 计算周数的方式 - 现在是今年的第几周?