说明:本次主要介绍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]]})
领取专属 10元无门槛券
私享最新 技术干货