首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python读word、excel、pdf

说明:本次主要介绍Python读写word、excel、pdf,由于Python版本的差异、使用三方库的差异,会导致相同的代码会有不同的执行效果,有些可能会运行报错。请大家自行根据本地环境进行调整

1、环境说明

Python版本:3.7

三方库:

主要需安装:pdfminer2、chardet、openpy、pypiwin32、pyexcel-xlsx等

2、读写Word

主要使用win32com库

2.1 读取Word内容

importwin32com

importwin32com.client

defreadWord(path):

doWord = win32com.client.Dispatch("Word.Application")

#可以处理doc和docx两种文件

word = doWord.Documents.Open(path)#打开word文件

forparagraphinword.Paragraphs:#循环处理word内容

lineTxt = paragraph.Range.Text

print(lineTxt)

word.Close()#关闭word文件

doWord.Quit()#退出word

#path = r"D:\Code\zhishufenxi.doc"

path =r"D:\Code\zhishufenxi.docx"

readWord(path)

2.2 写入Word

主要使用win32com、os库

importwin32com

importwin32com.client

importos

defwriteWord(path, text):#参数:文件路径、写入的内容

word = win32com.client.Dispatch("Word.Application")

# 可有可无,如果写了,那执行写的时候,会弹出word文档

# word.Visible = True

doc = word.Documents.Add()#创建word文档

r = doc.Range(,)#从头开始写

r.InsertAfter(text)

doc.SaveAs(path)#保存word文件

doc.Close()#关闭word文件

word.Quit()#退出word文件

path =r"D:\Code\test.docx"

text ="word文档写入测试"

writeWord(path,text)

3、读pdf

主要使用pdfminer库

frompdfminer.pdfparserimportPDFParser

frompdfminer.pdfdocumentimportPDFDocument

frompdfminer.pdfpageimportPDFPage

frompdfminer.pdfpageimportPDFTextExtractionNotAllowed

frompdfminer.pdfinterpimportPDFResourceManager

frompdfminer.pdfinterpimportPDFPageInterpreter

frompdfminer.pdfdeviceimportPDFDevice

frompdfminer.layoutimportLAParams

frompdfminer.converterimportPDFPageAggregator

# 获取pdf文档。

path =r"D:\Code\sunck.pdf"

f =open(path,"rb")

# 创建一个文档分析器

parser = PDFParser(f)

# PDF文档对象

doc = PDFDocument(parser)

# 链接分析器和文档对象

parser.set_document(doc)

# 初始化文档

# 创建PDF资源管理器

resource = PDFResourceManager()

# 参数分析器

laparam = LAParams()

# 创建一个聚合器

device = PDFPageAggregator(resource,laparams=laparam)

# 创建PDF页面解释器

interpreter = PDFPageInterpreter(resource, device)

# 使用文档对象得到页面集合

forpageinPDFPage.create_pages(doc):

# 使用页面解释器来读取

interpreter.process_page(page)

# 使用聚合器来获取内容

layout = device.get_result()

foroutinlayout:

ifhasattr(out,"get_text"):

print(out.get_text())

4、读写csv

主要使用csv库

4.1 读csv

importcsv

defreadCsv(path):

csvList = []

withopen(path,"r")asf:

allFile = csv.reader(f)

forfileinallFile:

csvList.append(file)

returncsvList

path =r"D:\Code\1.csv"

info = readCsv(path)

print(info)

print(info[])

'''

#打印所有内容

for x in info:

print(x)

'''

4.2 写csv

importcsv

defwriteCsv(path,data):

withopen(path,"w")asf:

writer = csv.writer(f)

forrowDataindata:

# print("rowData = " ,rowData)

writer.writerow(rowData)

path =r"D:\Code\2.csv"

writeCsv(path,[[1,2,3],[4,5,6]])

5、读写excel

5.1 读excel

主要使用openpyxl库

fromopenpyxl.reader.excelimportload_workbook

defreadExcel(path):

f = load_workbook(filename= path)

sheets = f.sheetnames

forsheetNum,sheetNameinenumerate(sheets):#循环处理每个sheet

print("第%s个sheet:%s"%(sheetNum,sheetName))

sheet = f.worksheets[sheetNum]

forlineNuminrange(1, sheet.max_row +1):#循环处理每一行

lineList = []

forcolumnNuminrange(1, sheet.max_column +1):#循环处理每一列

value = sheet.cell(row=lineNum,column=columnNum).value

lineList.append(value)

print(lineList)

path =r"D:\Code\test.xlsx"

readExcel(path)

5.2 写excel

主要使用collections库、pyexcel-xls库、pyexcel-xlsx库

下面以写xlsx文件为例

fromcollectionsimportOrderedDict

frompyexcel_xlsximportsave_data

defwriteExcel(path, data):

dic = OrderedDict()

forsheetName, sheetValueindata.items():

d = {}

d[sheetName] = sheetValue

dic.update(d)

save_data(path, dic)

path =r"D:\Code\test1.xlsx"

writeExcel(path, {"表1":[[1,2,3],[4,5,6],[7,8,9]],

"表2": [[11,22,33], [44,55,66], [77,88,99]]})

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181013G0EF0Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券