IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python学习day21 -> 正文阅读

[人工智能]python学习day21

python学习day21

一、csv文件读操作

1.创建reader
# csv.reader(文件对象) - 获取指定csv文件中的内容,
# 返回一个迭代器,迭代器中的元素是每一行数据对应一个列表
# 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'}
# 练习:打印每个酒店对应的平均评分
# 北京朗丽兹西山花园酒店  4.6
for x in reader2:
    scores = eval(f"{x['卫生评分']} + {x['服务评分']} + {x['设施评分']} + {x['位置评分']}")/4
    print(x['\ufeff酒店名称'], scores)

二、csv文件写操作

1.创建writer
# csv.writer(文件对象)
writer = csv.writer(open('files/学生信息.csv', 'w', encoding='utf-8', newline=''))

# 2.写入数据
# writer对象.writerow(一行内容对应的列表)
# writer对象.writerows(列表中的元素是每一行内容对应的列表)
writer.writerow(['姓名', '性别', '年龄', '分数'])
writer.writerows([
    ['小明', '男', '18', '90'],
    ['小花', '女', '18', '88'],
    ['小马', '女', '20', '78']
])
# 创建字典的writer
# csv.DictWriter(文件对象,字典所有的键)
writer2 = csv.DictWriter(open('files/学生信息2.csv', 'w', newline='', encoding='utf-8'),
                         ['姓名', '性别', '年龄', '分数'])

# 4.将数据写入文件
# 1)将字典的键作为第一行内容写入csv文件中
writer2.writeheader()
# 2)以字典的方式写入数据
writer2.writerow({'姓名': '小明', '性别': '男', '年龄': '18', '分数': 90})
writer2.writerows([
    {'姓名': '小朱', '性别': '男', '年龄': '20', '分数': 90},
    {'姓名': '小花', '性别': '女', '年龄': '18', '分数': 88},
    {'姓名': '小马', '性别': '女', '年龄': '19', '分数': 78},

])

三、pdf文件操作

from PyPDF2 import PdfFileReader, PdfFileReader, PdfFileWriter

# 1.pdf读操作
# 1)创建reader:PdfFileReader(文件对象)
reader1 = PdfFileReader(open('files/美食分享.pdf', 'rb'))
reader2 = PdfFileReader(open('files/存储引擎的讲解.pdf', 'rb'))
# 2)获取总页数:reader对象.numPages
page_num1 = reader1.numPages
page_num2 = reader2.numPages


# 3)获取指定页:reader对象.getPage(页数)
# 页数从0开始
page1 = reader1.getPage(0, )
page2 = reader1.getPage(1)

# 2.pdf写操作
# 1.创建writer
# 创建一个空白的pdf文件(一页内容都没有)
writer = PdfFileWriter()

# 2)添加页
# writer对象.addPage(页对象)  - 添加从别的pdf文件中获取到的页
writer.addPage(page1)
writer.addPage(page2)

# 添加空白页
# writer.addPage()

# 3)保存数据
writer.write(open('files/new.pdf', 'wb'))

练习

from PyPDF2 import PdfFileReader, PdfFileReader, PdfFileWriter

reader1 = PdfFileReader(open('files/美食分享.pdf', 'rb'))
reader2 = PdfFileReader(open('files/存储引擎的讲解.pdf', 'rb'))
# 2)获取总页数:reader对象.numPages
page_num1 = reader1.numPages
page_num2 = reader2.numPages
writer = PdfFileWriter()
min_page = min(page_num1, page_num2)

for i in range(min_page):
    writer.addPage(reader1.getPage(i))
    writer.addPage(reader2.getPage(i))
for z in range(page_num2, page_num1):
    writer.addPage(reader1.getPage(z))
writer.write(open('files/new2.pdf', 'wb'))

四、添加水印

from PyPDF2 import PdfFileReader, PdfFileReader, PdfFileWriter
import reportlab
# 1.准备水印文件和源文件
water_reader = PdfFileReader(open('files/watermark.pdf', 'rb'))
file_reader = PdfFileReader(open('files/存储引擎的讲解.pdf', 'rb'))

# 2.水印对应的页
water_page = water_reader.getPage(0)
# 3.准备需要添加水印的页
page_num = file_reader.numPages
page1 = file_reader.getPage(0)
# 4.合并水印页和需要添加水印的页
writer = PdfFileWriter()
for i in range(page_num):
    file_reader.getPage(i).mergePage(water_page)
    writer.addPage(file_reader.getPage(i))
# 5.准备空的pdf用来保存水印页
writer.write(open('files/new_存储引擎的讲解.pdf', 'wb'))

五、创建水印文件

from PyPDF2 import PdfFileReader, PdfFileReader, PdfFileWriter
from reportlab.pdfgen import canvas # 提供pdf文件
from reportlab.pdfbase import pdfmetrics    # 注册字体
from reportlab.pdfbase.ttfonts import TTFont    # 提供字体对象
# 1.注册字体
pdfmetrics.registerFont(TTFont('font1', 'files02/bb.ttf'))
pdfmetrics.registerFont(TTFont('font2', 'files02/青呱石头体.ttf'))
pdfmetrics.registerFont(TTFont('font3', 'files02/dd.ttf'))
# 2.创建pdf文件
pdf = canvas.Canvas('files02/water02.pdf')
pdf.rotate(45)
# 3.熏染文字
# 1)设置字体
# setFont(字体名,字体大小)
pdf.setFont('font3', 50)
# 2)设置文字颜色
# 计算机三原色:红绿蓝,(0~255)
# setFillColorRGB(r, g, b,透明度)
# 注意:r、g、b的取值范围是0~1
#       透明度取值范围0~1
pdf.setFillColorRGB(0, 0, 1, 0.5)
# 3)熏染文字(写字)
pdf.drawString(400, 100, '紫檀香')
# 4.保存文件
pdf.save()
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:55:34  更:2021-12-28 22:56:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 23:45:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码