1.csv文件读操作
import csv
1)创建reader
# 1)csv.reader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个列表
# 2)csv.DictReader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个字典
reader1 = csv.reader(open('files\\北京高档酒店价格分析.csv',encoding='utf-8'))
reader2 = csv.DictReader(open('files\\北京高档酒店价格分析.csv',encoding='utf-8'))
2)获取内容
print(next(reader1)) # ['\ufeff酒店名称', '地区', '地址', '卫生评分', '服务评分', '设施评分', '位置评分', '评价数', '装修时间', '房间类型', '房价', '经度', '纬度', '公司', '出行住宿', '校园生活']
print(next(reader1)) # ['北京朗丽兹西山花园酒店', '海淀区', '海淀永丰路与北清路十字路口往南800米路南', '4.8', '4.8', '4.7', '4.4', '143', '2014', '豪华套间', '9970', '116.292419', '40.095804', '0', '0', '0']
print(next(reader2)) # {'\ufeff酒店名称': '北京朗丽兹西山花园酒店', '地区': '海淀区', '地址': '海淀永丰路与北清路十字路口往南800米路南', '卫生评分': '4.8', '服务评分': '4.8', '设施评分': '4.7', '位置评分': '4.4', '评价数': '143', '装修时间': '2014', '房间类型': '豪华套间', '房价': '9970', '经度': '116.292419', '纬度': '40.095804', '公司': '0', '出行住宿': '0', '校园生活': '0'}
2.csv文件写操作
import csv
1)创建writer
# csv.writer(文件对象)
writer = csv.writer(open('files\\学生信息.csv','w',newline='',encoding='utf-8'))
2)写入数据
# writer对象.writerow(一行内容对应的列表)
# writer对象.writerows(列表中的元素是每一行内容对应的小列表)
writer.writerow(['姓名','性别','年龄','分数'])
writer.writerows([['小明','男',20,90],['小花','女',18,99]])
3)创建字典的writer
# csv.DictWriter(文件对象,字典所有的键)
writer2 = csv.DictWriter(
open('files\\学生信息2.csv','w',newline='',encoding='utf-8'),
['姓名','性别','年龄','分数']
)
4)将数据写入文件
# 1)将字典的键作为第一行内容写入csv文件中
writer2.writeheader()
writer2.writerow({'姓名':'小明','年龄':18,'性别':'男','分数':90})
writer2.writerows([{'姓名':'小花','年龄':18,'性别':'女','分数':90},
{'姓名':'小刚','年龄':19,'性别':'男','分数':90},
{'姓名':'小健','年龄':10,'性别':'男','分数':90}])
3.pdf文件操作
from PyPDF2 import PdfFileReader,PdfFileWriter
1)pdf操作
# 1)创建reader:PdfFileReader(文件对象)
reader = PdfFileReader(open('files\\存储引擎的讲解.pdf','rb'))
# 2)获取总页数:reader对象.numPages
page_num = reader.numPages
print(page_num)
# 3)获取指定页:reader对象.getPage(页数)
# 页数从0开始
page1 = reader.getPage(0)
2)pdf文件写操作
# 1)创建writer
# 创建一个空白的pdf文件(一页内容都没有)
writer = PdfFileWriter()
# 2)添加页
# writer对象.addPage(页对象) - 添加从别的pdf文件中获取到的页
writer.addPage(page1)
# 添加空白页
writer.addBlankPage()
# 3)保存数据
writer.write(open('files\\new.pdf','wb'))
4.添加水印
from PyPDF2 import PdfFileWriter,PdfFileReader
# 1.准备水印文件和原文件
water_reader = PdfFileReader(open('files\\watermark.pdf','rb'))
file_reader = PdfFileReader(open('files\\存储引擎的讲解.pdf','rb'))
# 2.水印对应的页
water_page = water_reader.getPage(0)
# 3.准备需要添加水印的页
page1 = file_reader.getPage(0)
# 4.合并水印页和需要添加水印的页
new_page1 = page1.mergePage(water_page)
# 5.准备空的pdf用来保存水印页
writer = PdfFileWriter()
writer.addPage(page1)
writer.write(open('files\\new_存储引擎的讲解.pdf','wb'))
5.创建水印
from reportlab.pdfgen import canvas # 提供pdf文件
from reportlab.pdfbase import pdfmetrics # 注册字体
from reportlab.pdfbase.ttfonts import TTFont # 提供字体对象
# 1.注册字体
pdfmetrics.registerFont(TTFont('font1','files\\bb.ttf'))
pdfmetrics.registerFont(TTFont('font1','files\\dd.ttf'))
# 2.创建空白pdf
pdf = canvas.Canvas('files\\water.pdf')
# 3.渲染文字
# 1)设置字体
# setFont(字体名,字体大小)
pdf.setFont('font1',30)
# 2)设置文字颜色
# 计算机三原色:红、绿、蓝(0~255)
# setFillColorRGB(r,g,b,透明度)
# 注意:r、g、b的取值范围是0~1
# 透明度取值范围0~1
pdf.setFillColorRGB(0.8,0.8,0.8,0.5)
# 旋转
pdf.rotate(45)
# 3)渲染文字(写字)
pdf.drawString(600,200,'Kaneki')
# 4.保存文件
pdf.save()