文章目录

  • 一、文件处理与pdf处理思维导图
  • 二、补充说明:pdf的读取、合并、转换、水印添加(自学,如有错误烦请指正)
    • 1、pdf的读取
      • 1. 对pdf文本内容的读取
      • 2、读取pdf表格内容转化为EXCEL
    • 2、pdf的合并
    • 3、word转pdf(没仔细看)
    • 4、pdf添加水印

一、文件处理与pdf处理思维导图

二、补充说明:pdf的读取、合并、转换、水印添加(自学,如有错误烦请指正)

1、pdf的读取

1. 对pdf文本内容的读取

主要使用的是pdfplumber库

  • 库的安装:(以 anaconda为例)


    如果出现error,建议根据出错的类型百度,我出错的原因是pip太旧了啥啥的,更新就好了
    安装完成后,请看代码及注释
import pdfplumber  #导入库
with  pdfplumber.open("D:/ps/test.pdf") as pdf :  pdf_len = len(pdf.pages)  #获取pdf所有页数print(pdf_len)   #输出pdf所有页数first_page = pdf.pages[0]  #获取pdf页面信息列表的第一页的内容print(first_page)  #输出print(first_page.chars[0])   #输出第一页的独立的字符的属性first_page.extract_text()  #获取当前页面文本值for i in range(0,pdf_len):  # 遍历所有页面,获取文本值并输出print(pdf.pages[i].extract_text())

2、读取pdf表格内容转化为EXCEL

部分代码:

import pdfplumber  #导入库
import pandas as pd   #导入库
import os    #导入库old_dir_path = 'D:/tools/python/study/datafile/txtpdf/oldfiles'   #路径
old_pdf_path = os.path.join(old_dir_path,'first.pdf')   #旧处理文件的地址pdf = pdfplumber.open(old_pdf_path)     #打开旧的需要进行处理的文件,命名为pdfpdf_pages = len(pdf.pages) #获取pdf的页数
pdf_pages#获取第一页的表格,若没有表格,会返回错误
pdf.pages[1].extract_table()all_content = []  #创建一个列表,获取pdf的所有表格for i in range(0,pdf_pages):    #0到最后一页循环for j in pdf.pages[i].extract_tables():   #返回[[每一行内容]]的嵌套格式的内容,没有表格,返回空字符串的列表for k in j:   #对每一行内容进行遍历if ' ' not in k:  #判断是否有空字符串all_content.append(k)   #在建立原列表的基础上添加内容print(k) #输出data = pd.DataFrame(all_content)  #转成DataFrame(),二维的有行有列的表
print(data)
data.to_excel('pdf_tables.xlsx',index = False, header = None)   #生成xlsx文件,即excel里面的表格

2、pdf的合并

代码(非完全自创代码段):

from PyPDF2 import PdfFileReader  #导入库
from PyPDF2 import PdfFileWriter
import os    old_dir_path = 'D:/tools/python/study/datafile/txtpdf/oldfiles'   #写入路径pdf_paths = []  #定义一个列表保存所有pdf路径for file_name  in os.listdir(old_dir_path):  #使用os模块,获得该路径下所有文件if '.pdf' in file_name:  #判断是否是pdf文件,是的话则加入列表pdf_paths.append(os.path.join(old_dir_path,file_name))  #  增加了路径
new_pdf = PdfFileWriter()  # 类 支持将pdf文件写出,给定由另一类产生的页面(通常为 PdfFileReader)
#记录 pdf总页数
numPages = 0
for pdfpath in pdf_paths:   #循环获取路径old_pdf = PdfFileReader(open(pdfpath,'rb'))       #初始化pdfPages = old_pdf.getNumPages()#获取当前pdf页数numPages += pdfPages    #增加pdf页数for i in range(old_pdf.getNumPages()) :   #增加所有页面合并后的内容new_pdf.addPage(old_pdf.getPage(i))
with open(os.path.join(new_pdf_path,new_name),'wb') as p:    new_pdf.write(p)  #写入pdf

3、word转pdf(没仔细看)

4、pdf添加水印

pdf添加水印,其实我认为就是pdf和水印的pdf进行合并而产生的效果,所以代码也是从这个思路走的
代码段+注释:

from PyPDF2 import PdfFileReader,PdfFileWriter   #导入库
pdf = PdfFileReader('D:/tools/python/study/datafile/txtpdf/oldfiles/first.pdf')
water_pdf = PdfFileReader('D:/tools/python/study/datafile/txtpdf/water.pdf')water = water_pdf.getPage(0)
writer = PdfFileWriter()for i in range(pdf.getNumPages()):pdf.getPage(i).mergePage(water)writer.addPage(pdf.getPage(i))writer.write(open('newnew.pdf','rwb'))

python还可以对pdf进行很多操作,这里只是列举了常见得几种,对于有密码得pdf,我选择手动解个密(狗头),文件批量处理就当我没说,作为初学者,还有很多地方不是太懂,希望后续可以更新改进。

数据分析学习笔记—文件处理与pdf处理相关推荐

  1. 数据分析学习笔记——数据可视化

    数据分析学习笔记系列--数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍<数据之美-一本书学会可视化设计>的学习后整理所得.全篇主要围绕数据可视化的5个步骤展开,其中重点内容是第三步 ...

  2. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化

    Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...

  3. Python数据分析学习笔记:计算向量夹角

    Python数据分析学习笔记:计算向量夹角 通过计算两个向量夹角了解两个向量之间的相关性. # 计算向量夹角import numpy as npdef included_angle(a, b):a_n ...

  4. Python数据分析学习笔记:计算相关系数

    Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...

  5. Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  6. python客户画像_Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  7. 数据分析学习笔记-数据分析预备知识

    数据分析学习笔记 数据分析预备知识

  8. 数据分析学习笔记(二)数据分析三思维七技巧

    数据分析学习笔记(二) What 三种核心思维 结构化 公式化 业务化 Why 数据分析的思维技巧 象限法 多维法 假设法 指数法 二八法 对比法 漏斗法 总结 How 如何在业余时间锻炼分析能力 好 ...

  9. 大数据分析学习笔记(Z检验,分类器以及Association Rule)

    大数据分析学习笔记(Z检验,分类器以及Association Rule) Task 1 – Hypothesis Testing To improve student learning perform ...

最新文章

  1. python画图程序-python画图之“小海龟”turtle
  2. Leetcode刷题记录[python]——258 Add Digits
  3. 汇编中16进制的写法问题
  4. 无法读取源文件或磁盘_raid磁盘阵列作用
  5. Linux Jump Label(x86)
  6. 9008刷机模式写入超时刷机帮_刷机帮教你优思高通刷机工具错误处理方法
  7. oppoa3android怎么升级,OPPO A3刷机教程_OPPO A3卡刷升级更新官方系统包
  8. 渲染到纹理(Render To Texture, RTT)详解
  9. interface详解
  10. CPU 和 GPU - 异构计算的演进与发展
  11. 需求提炼:产品需求、技术需求
  12. テクニカルアーティストに必要な資料集めようぜ!
  13. 人民币大小写转换 java 实现
  14. 力扣题目归类,顺序刷题不再难
  15. [0520更新]雷达原理【部分]答案 陈伯孝
  16. 百度网盘青春版:我就糊弄一下
  17. 顺丰亮出无人机杀手锏:可以载重1.2吨
  18. Excel 2013 VlookUp函数使用
  19. 蓝桥杯真题系列:C语言A组奇妙的数字
  20. 美国教育骗局:高中生活,4小时睡眠,4杯咖啡,4.0的成绩

热门文章

  1. sql cte递归_准备好,开始吧– SQL Server如何处理递归CTE
  2. 一篇文章让你学透Linux系统中的more命令
  3. MySQL数据库和表名大小写敏感开关的打开办法
  4. Codeforces ----- Kefa and Dishes [状压dp]
  5. 操作系统笔记(三)进程管理之管理
  6. Mathematica图片修复
  7. ScrollView垂直滚动控件
  8. java日志系统简介: 从tomcat大量打印debug日志说起
  9. 在Unity3D中实现安卓平台的本地通知推送
  10. SQL 中With as 的用法