# pip install pdfminer3k
from io import StringIO
from pdfminer.pdfinterp import PDFResourceManager,process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams

# 打开pdf文件
pdf_file = open("day6_1.pdf", "rb")

rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr=rsrcmgr, outfp=retstr, laparams=laparams)
process_pdf(rsrcmgr=rsrcmgr, device=device, fp=pdf_file)
device.close()
content = retstr.getvalue()
retstr.close()
pdf_file.close()
print(content)

 

from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice

# 可以使用此方法获取网络上的pdf
# from urllib.request import urlopen
# fp = urlopen("https://******/articles/800348152163.pdf")

#获取文档对象
fp = open("day6_1.pdf", "rb")

#创建一个一个与文档关联的解释器
parser = PDFParser(fp)

#PDF文档的对象
doc = PDFDocument()

#连接解释器和文档对象
parser.set_document(doc)
doc.set_parser(parser)

#初始化文档,当前文档没有密码,设为空字符串
doc.initialize("")

#创建PDF资源管理器
resource = PDFResourceManager()

#参数分析器
laparam = LAParams()

#创建一个聚合器
device = PDFPageAggregator(resource, laparams=laparam)

#创建PDF页面解释器
interpreter = PDFPageInterpreter(resource, device)

#使用文档对象得到页面的集合
for page in doc.get_pages():
 # 使用页面解释器读取
 interpreter.process_page(page)

 # 使用聚合器来获得内容
 layout = device.get_result()

 for out in layout:
  if hasattr(out, "get_text"):
   print(out.get_text())

 

# python数据分析处理
# pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
import pandas as pd

one_d = pd.Series(['a', 'b', 'c', 'd'])
print(one_d)

two_d = pd.DataFrame({
    '学号': ['A2','A3'],
    '姓名': ['刘二','张三'],
    '语文': ['68','68']
})
print(two_d)

 

# pip install numpy
import pandas as pd
import numpy as np

r_file = pd.ExcelFile('student.xls')
data = r_file.parse('Sheet1')
# print(data)
# index代表行的名称,columns代表列的名称
# aggfunc=np.sum求和
# margins=True总计
# 求各省分数和
pt_s = pd.pivot_table(data, index=['省份'], aggfunc=np.sum, margins=True)
print(pt_s)
# 全部显示行和列
print(pt_s.iat[0, 0])

# 求各省的个数
pt_n = pd.pivot_table(data, index=['省份'], aggfunc=np.size, margins=True)
print(pt_n)
print(pt_n.iat[0, 0])

# 默认是求平均值

 

# 数据可视化
# pip install matplotlib

# 导库
import matplotlib.pyplot as mplt
# 支持中文
mplt.rcParams['font.sans-serif'] = ['SimHei']

date = ['2021/4/13','2021/4/14','2021/4/15']
yue = [10,20,30]
min = [40,50,60]

# 折线图
# mplt.plot(date, yue, color='red', label='广东')
# mplt.plot(date, min, color='blue', label='福建')
# mplt.title('降雨量')
# mplt.xlabel('日期')
# mplt.ylabel('降雨量')
# mplt.legend()
# mplt.show()

# 柱状图
# mplt.bar(date, yue, color='red', label='广东')
# mplt.legend()
# mplt.show()

# 水平柱状图
# mplt.barh(date, yue, color="red", label='广东')
# mplt.legend()
# mplt.show()

# 饼图
date = [1, 2]
province = ['广东', '福建']
colors = ['red', 'blue']
mplt.pie(x=date, labels=province, colors=colors)
mplt.legend()
mplt.show()

 

最后修改于 2021-04-12 22:19:21
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇