我是靠谱客的博主 仁爱戒指,最近开发中收集的这篇文章主要介绍Python 编程快速上手-让繁琐工作自动化-处理CSV,PDF,Word模块处理CSV处理PDF和Word,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

处理CSV,PDF,Word模块

  • 处理CSV
    • CSV文档特点
    • 步骤
    • 注意事项
  • 处理PDF和Word
    • 处理PDF
    • 处理Word

python处理csvpdf都需要先采用open函数打开文件,但是不能在open()返回的file对象上直接调用read()或readlines()方法,需要将它传递给reader()函数后,再对这个函数返回的对象进行操作。

处理CSV

CSV文档特点

• 值没有类型,所有东西都是字符串;
• 没有字体大小或颜色的设置;
• 没有多个工作表;
• 不能指定单元格的宽度和高度;
• 不能合并单元格;
• 不能嵌入图像或图表。

步骤

# 以原文书本的一个项目示例进行
import csv,os #csv是python自带模块,不需要安装,os是目录操作模块
os.makdirs('headerRemoved',exist_ok=True) #当前目录下创建一个名字为headerRemoved的新文件夹
for csvFileName in os.listdir('.'): #遍历循环当前路径下的所有文件
	if csvFileName.endwith('.csv'): #如果文件后缀名是csv,则返回TRUE,继续下一步操作
		csvRows = [] #创建一个空列表
		csvFileObj = open(csvFileName) #打开文件对象
		readObj = csv.reader(csvFileObj) #必须有这两步,reader不能直接读取文件名,open函数返回的对象也不能直接进行读取操作
		for row in readerObj:
			if readerObj.line_num == 1: #项目要求,去除首行
				continue  #是第一行就返回for循环进行,否则向下运行程序
			csvRows.append(row) 	#将内容存放到列表中
		csvFileObj.close() #关闭open函数打开的对象,该部分往上是读取csv内容的常用操作
		# 往下为往csv文件内写入内容常用操作
		csvFileObj = open(os.path.join('headRemoved',csvFileName),'w',newline='') #用写模式创建一个新的文件对象,必须加上newline='',否则行间会多出一个空白行
		csvWriter = csv.Writer(csvFileObj) #原理同reader操作步
		for row in csvRows: #遍历循环列表
			csvWriter.writerow(row) #csv写入文件只能逐行写入
		csvFileObj.close() #关闭对象	

注意事项

1、csv文件类型是文本文件
2、要用csv 模块读取CSV 文件,首先用open()函数打开它,就像打开任何其他文本文件一样。但是,不用在open()返回的File 对象上调用read()或readlines()方法,而是将它传递给csv.reader()函数。这将返回一个Reader 对象,供使用。请注意,不能直接将文件名字符串传递给csv.reader()函数。
3、要访问Reader 对象中的值,最直接的方法,就是将它转换成一个普通Python 列表,即将它传递给list()。在这个Reader 对象上应用list()函数,将返回一个列表的列表。用表达式exampleData[row][col]来访问特定行和列的值。 这种方式是一次性读取所有内容到内存
4、对于大文件,需要用for循环来获得reader对象。Reader 对象只能循环遍历一次。要再次读取CSV 文件,必须调用csv.reader,创建一个对象
5、csv默认用逗号分隔单元格,可以采用delimiter关键字用制表符代替逗号,lineterminator关键字用来设置两倍行距
示例代码:

exampleReader = csv.reader(exampleFile) #创建reader对象
exampleData = list(exampleReader) #将reader对象中的值转化为列表
exampleData[0][0] #代表A1位置的内容
csvWriter = csv.writer(csvFile,delimiter='t',lineterminator='nn')

处理PDF和Word

python处理PDF和Word是不完美的,功能有限

处理PDF

1、模块:PyPDF2
PyPDF2只能提取PDF中的文本,没法提取图像、图表等其他媒体
python打开PDF和Word文件时,需要以读二进制模式(rb、wb)
PyPDF2 写入PDF 的能力,仅限于从其他PDF 中拷贝页面、旋转页面、重叠页面和加密文件。
2、常用操作:

pdfFileObj = open('aaa.pdf','rb') #二进制模式打开文件
pfdReader=PyPDF2.PdfFileReader(pdfFileObj) #将Obj传递给reader函数
#对reader对象进行操作
pdfReader.decrypt('code') #对加密的文档传入密码进行解密
pdfReader.numPages #PDF文件总页数
pdfReader.getPage(0).extractText() #获得第一页page中的文本内容,文本提取并不完美

项目:创建PDF:

#1.打开一个或多个已有的PDF(源PDF),得到PdfFileReader 对象。
pdf1File=open('meeting1','rb')
pdf2File=open('meeting2','rb')
pdf1Reader=PyPDF2.PdfFileReader(pdf1File)
pdf2Reader=pyPDF2.PdfFileReader(pdf2File)
#2.创建一个新的PdfFileWriter 对象。
pdfWriter=PyPDF2.PdfFileWriter()
#3.将页面从PdfFileReader 对象拷贝到PdfFileWriter 对象中。
for pageNum in range(pdf1Reader.numPages):
	pageObj=pdf1Reader.getPage(pageNum)
	pdfWriter.addPage(pageObj)
for pageNum in range(pdf2Reader.numPages):
	pageObj=pdf2Reader.getPage(pageNum)
	pdfWriter.addPage(pageObj)
#4.最后,利用PdfFileWriter 对象写入输出的PDF。
pdfOutputFile=open('combination.pdf','wb')
pdfWriter.write(pdfOutputFile)
#5、关闭文件
pdfOutputFile.close()
pdf1File.close()
pdf2File.close()

PyPDF2 不能在PdfFileWriter 对象中间插入页面,addPage()方法只能够在末尾添加页面。

page.rotateClockwise(90) #将页面旋转90度。利用rotateClockwise()和rotateCounterClockwise()方法,PDF文档的页面可以旋转90°的整数倍,即90、180、270度
firstPage.mergePage(secondPage) #将第二页叠加到第一页上,常用来在页面上添加公司标志、时间戳或水印
pdfWriter.encrypt('usrcode','ownercode') #对PDF加密,第一个参数是使用者密码,可以查看,第二个是拥有者密码,可以修改PDF,如果只传入一个参数,则使用者和拥有者密码相同。

处理Word

安装模块pip install python-docx
导入模块 import docx
常用操作

import docx #导入模块
doc = docx.Document('demo.docx') #打开demo文件
len(doc.paragraphs)#文件的段落数
doc.paragraphs[0].text #第一个段落内容len(doc.paragraphs[1].runs) #第二个段落所包含的样式

# 创建一个getText()函数,用来取得Word文档中的文本
def getText(filename):
	doc = docx.Document(filename)
	fullText = []
	for para in doc.paragraphs:
		fullText.append(para.txt) #本句可替换为fullText.append('  '+para.text)用来让每一段缩进
	return 'n',join(fullText)

doc = docx.Document() #创建一个新的空白Word文档对象
doc.add_paragraph('hello world') #在文档中增加新文本
paraObj1 = doc.add_paragraph('This is the second para.')
paraObj2 = doc.add_paragraph('This is the third para.')
paraObj1.add_run('This text is being added to the second para.') #在某段后面再增加新的内容
doc.save('helloworld.docx') #保存
#新的Paragraph 对象只能添加在文档的末尾,新的Run 对象只能添加在Paragraph 对象的末尾。

doc.add_heading('Header 0','0') #add_heading()添加一个段落,并使用一种标题样式。add_heading()的参数,是一个标题文本的字符串,以及一个从0 到4 的整数。整数0 表示标题是Title 样式,这用于文档的顶部。整数1 到4 是不同的标题层次,1是主要的标题,4 是最低层的子标题。add_heading()返回一个Paragraph 对象

最后

以上就是仁爱戒指为你收集整理的Python 编程快速上手-让繁琐工作自动化-处理CSV,PDF,Word模块处理CSV处理PDF和Word的全部内容,希望文章能够帮你解决Python 编程快速上手-让繁琐工作自动化-处理CSV,PDF,Word模块处理CSV处理PDF和Word所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部