第二十一天-csv文件操作
一、csv文件操作
-
创建reader
1)csv.reader(文件对象)
2)csv.DictReader(文件对象)
result1 = csv.reader(open('北京高档酒店价格分析.csv',encoding='UTF-8')) result2 = csv.DictReader(open('北京高档酒店价格分析.csv',encoding='UTF-8'))
二、csv文件写操作
-
创建writer
import csv writer = csv.writer(open('学生信息.csv','w',newline=''))
-
写入数据
writer.writerow(['姓名','性别','年龄','分数']) writer.writerows([ ['小明','男',18,90], ['小化','女',19,90] ])
-
创建字典的writer
csv.DictReader(文件对象,字典所有的键) writer2 = csv.DictReader(op)
三、PDF文件操作
-
读取pdf
1)创建reader
reader = PdfFileReader(open('存储引擎的讲解.pdf','rb')) reader1 = PdfFileReader(open('美食分享.pdf','rb'))
2)获取总页数
page_num = reader.numPages
print(page_num)
3)获取指定页
-
pdf写操作
1)创建writer
创建一个空白的pdf文件
writer = PdfFileWriter()
2)添加页
writer.addPage(page1) writer.addBlankPage()
3)保存数据
writer.write(open('new_data.pdf','wb'))
四、添加水印
import reportlab as reportlab
from PyPDF2 import PdfFileReader,PdfFileWriter
-
准备水印和原文件
water_reader = PdfFileReader(open('watermark.pdf','rb')) file_reader = PdfFileReader(open('存储引擎的讲解.pdf','rb'))
-
水印对应页
water_page = water_reader.getPage(0)
-
获取需要添加水印的水印页
page1 = file_reader.getPage(0)
-
合并水印页和添加水印页
page1.mergePage(water_page)
-
准备空的pdf文件保存水印效果
writer = PdfFileWriter() writer.addPage(page1) writer.write(open('水印效果.pdf','wb'))
五、创建水印文件
from reportlab.pdfgen import canvas #提供pdf文件
from reportlab.pdfbase import pdfmetrics #注册字体
from reportlab.pdfbase.ttfonts import TTFont #提供字体对象
-
注册字体
pdfmetrics.registerFont(TTFont('字体1','青呱石头体.ttf'))
-
创建空白pdf
pdf = canvas.Canvas('water.pdf')
-
渲染
1)设置字体
pdf.setFont('字体1',30)
2)设置文字颜色
pdf.setFillColorRGB(0.3,0.4,0.5,0.5)
3)旋转
pdf.rotate(45)
4)渲染文字
pdf.drawString(300,400,'张小海')
5)保存水印
pdf.save()