今日内容概要

  • openpyxl模块
  • MongoDB数据库

今日内容详细

openpyxl模块

# 下载
pip3 install openpyxl # 使用
'''openpyxl内部读写也是分离的 需要你调用不同的方法才能完成'''
from openpyxl import Workbook
# 导入工作簿 # 生成一个工作簿对象
wb = Workbook() # 利用该工作簿对象即可操作excel表格
# wb1 = wb.create_sheet('哈哈') # 在excel文件内新建一个哈哈的工作表
wb1 = wb.create_sheet('哈哈',0) # 在excel文件内新建一个哈哈的工作表
# 后面的数字用来指定创建的工作表在excel文件内的位置 # wb1.title = '嘿嘿嘿' # 还可以通过title属性修改工作表的名称 # 1.通过代码操作excel单元格需要使用坐标
wb1['A3'] = 666
# 2.还可以通过关键字的形式 明确行和列 cell是单元格的意思
wb1.cell(row=3,column=4,value=999) # row是行 column是列 value是数据 wb1['A4'] = 123
wb1['A5'] = 321
wb1['A6'] = '=sum(A4:A5)' # 保存excel文件
wb.save('我的第一个excel文件.xlsx') # 进阶操作
from openpyxl import Workbook wb = Workbook()
wb1 = wb.create_sheet('test',0)
# 表格肯定有表头和表单
"""
表头就是excel表格的列名称
表单就是excel表格的行数据
"""
# 直接使用append添加列表数据 列表里面的元素都会在一行展示出来
wb1.append(['用户名','年龄','性别','手机号']) # 表单数据的添加 append一次就是一行
wb1.append(['jason',18,'男',110])
wb1.append(['egon',73,'男',120])
wb1.append(['frank',84,'男',130])
wb1.append(['tony',32,'男',140])
# 少录一列数据
# wb1.append(['tony','男',140]) # 直接前移
# 缺失数据
wb1.append(['kevin','','男',140]) # 支持录入空数据 wb.save('111.xlsx') # 读操作
from openpyxl import load_workbook wb = load_workbook('111.xlsx')
# 获取到excel表格中所有的工作表名称
# print(wb.sheetnames) # 结果是一个列表 ['test', 'Sheet'] # 指定你要获取的工作表
# wb1 = wb['哈哈']
wb1 = wb['test'] # 获取test工作表 wb1就指代test工作表 # 获取数据 统一都需要.value才可以获取到
# res = wb1['A4'].value # 获取A2单元格里面的数据
# print(res) # 获取公式单元格数据 获取到的是公式而不是结果
# res1 = wb1['A6'].value
# print(res1) # =sum(A4:A5) # 获取数据的第二种方式
# res2 = wb1.cell(row=3,column=4).value
# print(res2) # 在读取excel表格数据之前 我们通常先查看当前excel表格有几行几列数据
print(wb1.max_row) # 6行
print(wb1.max_column) # 4列 # print(wb1.rows) # <generator object Worksheet._cells_by_row at 0x0000017E63683F10>
# for row in wb1.rows:
# # print(row) # (<Cell 'test'.A1>, <Cell 'test'.B1>, <Cell 'test'.C1>, <Cell 'test'.D1>)
# # 对数据行对象进行for循环获取一个个单元格的数据
# for data in row:
# print(data.value) # print(wb1.columns)
# for column in wb1.columns:
# # print(column)
# for data in column:
# print(data.value) """
generator
只要你看到generator关键字 说明这个东西可以被for循环
"""

官方文档

https://pypi.org/project/openpyxl/  # 官网
https://openpyxl.readthedocs.io/en/stable/ # 详细的文档
https://openpyxl.readthedocs.io/en/stable/tutorial.html # 详细的教程 from openpyxl import Workbook wb = Workbook() ws1 = wb.active # 不创建新的工作表 直接用第一个sheet
# ws2 = wb.create_sheet() # 再创建新的工作表
ws1.title = '主表'
ws1['A1'] = '求求你们用点心 好好学!'
ws1.sheet_properties.tabColor = "FF2DE00F"
target = wb.copy_worksheet(ws1)
# res = ws1['A1:C6'] # 依次获取每个单元格里面的数据
# for t in res:
# for data in t:
# print(data.value)
res = ws1[1:5]
print(res)
"""
取色
1.利用微信或者qq截图下面有颜色代码
2.利用pycharm提供的取色器
"""
# wb.save('333.xlsx')
"""
save 如果不执行 那么上述所有的操作都是在内存中进行的
"""

MongoDB数据库

# 参考文档:https://www.cnblogs.com/xiaoyuanqujing/articles/11805775.html

关系型数据库
MySQL、oracle、acess、postgresql、db2、sqlite
非关系型数据库
redis、mongodb、memcache MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库 1.易用性
数据操作更加的简单方便扩展性更高
采取的是类似于key:value的形式存储数据 2.易扩展
MongoDB支持横向扩展
# 纵向扩展和横向扩展的含义
应用程序数据集的大小正在以不可思议的速度增长。随着可用带宽的增长和存储器价格的下降,即使是一个小规模的应用程序,需要存储的数据量也可能大的惊人,甚至超出
了很多数据库的处理能力。过去非常罕见的T级数据,现在已经是司空见惯了。
由于需要存储的数据量不断增长,开发者面临一个问题:应该如何扩展数据库,分为纵向扩展和横向扩展,纵向扩展是最省力的做法,但缺点是大型机一般都非常贵,而且
当数据量达到机器的物理极限时,花再多的钱也买不到更强的机器了,此时选择横向扩展更为合适,但横向扩展带来的另外一个问题就是需要管理的机器太多。
MongoDB的设计采用横向扩展。面向文档的数据模型使它能很容易地在多台服务器之间进行数据分割。MongoDB能够自动处理跨集群的数据和负载,自动重新分配文档,以及将
用户的请求路由到正确的机器上。这样,开发者能够集中精力编写应用程序,而不需要考虑如何扩展的问题。如果一个集群需要更大的容量,只需要向集群添加新服务器,MongoDB就会自动将现有的数据向新服务器传送 3.丰富的功能
1.索引(类似于书的目录用于加快查询速度)
2.聚合
3.特殊的集合类型
4.文件存储 4.卓越的性能
MongoDB的一个主要目标是提供卓越的性能,这很大程度上决定了MongoDB的设计。MongoDB把尽可能多的内存用作缓存cache,视图为每次查询自动选择正确的索引。
总之各方面的设计都旨在保持它的高性能
虽然MongoDB非常强大并试图保留关系型数据库的很多特性,但它并不追求具备关系型数据库的所有功能。只要有可能,数据库服务器就会将处理逻辑交给客户端。这种精简方式的设计是MongoDB能够实现如此高性能的原因之一 """
MongoDB是唯一一款看上去像关系型数据库的非关系数据库
"""

MongoDB重要概念

MySQL				MongoDB				结束
database database 数据库
table collection 数据表/集合
row document 数据行/文档
column field 列字段/域
index index 索引
table joins 连接表/不支持
primary key primary key 主键/MongoDB会自动将_id字段设置为主键

文档

文档是MongoDB的核心概念。文档就是键值对的一个有序集{'msg':'hello','foo':3}。类似于python中的有序字典。

需要注意的是:
#1、文档中的键/值对是有序的 (python中的字典键值对是无序的)
#2、文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
#3、MongoDB区分类型和大小写。(MySQL默认不缺分大小写)
#4、MongoDB的文档不能有重复的键。
#5、文档中的值可以是多种不同的数据类型,也可以是一个完整的内嵌文档。文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 文档键命名规范:(遵循变量名的命名并且做到见名知意就可以了)
#1、键不能含有\0 (空字符)。这个字符用来表示键的结尾。
#2、.和$有特别的意义,只有在特定环境下才能使用。
#3、以下划线"_"开头的键是保留的(不是严格要求的)。

集合

类似于MySQL里面的表

数据库

在MongoDB中,多个文档组成集合,多个集合可以组成数据库
数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串:
#1、不能是空字符串("")。
#2、不得含有' '(空格)、.、$、/、\和\0 (空字符)。
#3、应全部小写。
#4、最多64字节。 有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
#1、admin: 从身份认证的角度讲,这是“root”数据库,如果将一个用户添加到admin数据库,这个用户将自动获得所有数据库的权限。再者,一些特定的服务器端命令也只能从admin数据库运行,如列出所有数据库或关闭服务器
#2、local: 这个数据库永远都不可以复制,且一台服务器上的所有本地集合都可以存储在这个数据库中
#3、config: MongoDB用于分片设置时,分片信息会存储在config数据库中

补充

表里面的一行数据对应到mongodb中
其实就是一个类似于字典的字典数据

下载与安装

1.直接去官网下载 解压
2.将bin文件路径添加到环境变量中
3.终端输入mongo即可
mongo.exe 客户端
mongod.exe 服务端

作业

openpyxl模块的读写使用及mongodb概念的更多相关文章

  1. openpyxl模块介绍

    openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...

  2. openpyxl模块(excel操作)

    openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读 ...

  3. 常用模块 - openpyxl模块

    一.简介 xlrd/xlwt 主要是针对Office 2003或更早版本的XLS文件格式 缺点:不支持XLSX文件格式 OpenPyXL 能读能写能修改 缺点:不支持XLS Microsoft Exc ...

  4. openpyxl模块处理excel文件

    python模块之——openpyxl 处理xlsx/ xlsm文件 项目原因需要编辑excel文件,经过查询,最先尝试xlwt .wlrd这个两个模块,但是很快发现这两个模块只能编辑xls文件,然而 ...

  5. python之openpyxl模块

    一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库 ...

  6. python基础语法12 内置模块 json,pickle,collections,openpyxl模块

    json模块 json模块: 是一个序列化模块. json: 是一个 “第三方” 的特殊数据格式. 可以将python数据类型 ----> json数据格式 ----> 字符串 ----& ...

  7. openpyxl 模块的使用

    参考博客:https://www.cnblogs.com/anpengapple/p/6399304.html?utm_source=itdadao&utm_medium=referral 在 ...

  8. python中使用openpyxl模块时报错: File is not a zip file

    python中使用openpyxl模块时报错: File is not a zip file. 最大的原因就是不是真正的 xlsx文件, 如果是通过 库xlwt  新建的文件,或者是通过自己修改后缀名 ...

  9. Python基础之模块:5、 第三方模块 requests模块 openpyxl模块

    目录 一.第三方模块的下载与使用 1.什么是第三方模块 2.如何安装第三方模块 方式一:pip工具 方式二:pycharm中下载 3.注意事项 1.报错并有警告信息 2.报错,提示关键字 3.报错,无 ...

随机推荐

  1. ERNIE代码解析

    原创作者 |疯狂的Max ERNIE代码解读 考虑到ERNIE使用BRET作为基础模型,为了让没有基础的NLPer也能够理解代码,笔者将先为大家简略的解读BERT模型的结构,完整代码可以参见[1]. ...

  2. 『无为则无心』Python基础 — 43、文件备份的实现

    目录 1.需求 2.步骤 3.代码实现 (1)接收用户输入目标文件名 (2)规划备份文件名 (3)备份文件写入数据 (4)思考 (5)完整编码 4.再来一个小练习 1.需求 用户输入当前目录下任意文件 ...

  3. ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.12

    公告 我们的所有非技术内容和活动,从现在开始会使用 iBooker 这个名字. "开源互助联盟"已终止,我们对此表示抱歉和遗憾.除非特地邀请,我们不再推广他人的任何项目. 公众号自 ...

  4. 解决SpringBoot连接Nacos集群报400问题

    问题描述 搭建一个Nacos集群,使用 SpringBoot 程序连接 Nacos 集群,在启动的时候报异常,程序启动失败,而后程序假死.详细控制台日志信息如下: failed to req API: ...

  5. 「ZJOI2014」星系调查

    「ZJOI2014」星系调查 本题核心在于快速求XPs 的线性假设相斥度. 点\((x1,y1)\)到直线\(y=kx+b\)的距离的平方为\(\displaystyle {(kx1+b-y1)^2} ...

  6. RocketMQ在Windows和Linux下的安装

    windows下的RocketMQ的安装 鉴于Quick Start,选择单mater模式,环境简单: win10 64 jdk1.8 maven 3.5.4 Git rocketMQ安装版本 4.4 ...

  7. JS 函数提升&变量提升以及函数声明&函数表达式的区别

    感谢原文作者:迟早会有猫 原文链接:https://www.cnblogs.com/SidselLoong/p/10515809.html 今天看js的变量提升问题,里面提到了函数提升.然后发现自己之 ...

  8. bom案例1-div拖拽

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. LeetCode随缘刷题之整数反转

    package leetcode.day_01_29; /** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. * 如果反转后整数超过 32 位的有符号整数的范围[− ...

  10. 北京太速科技-第六代Intel i7四核八线程6U VPX主控板

    一.产品概述 该产品是一款基于第六代Intel i7四核八线程的高性能6U VPX刀片式计算机.产品提供了可支持全网状交换的高速数据通道,其中P1,P2各支持4个PCIe x4 Gen3总线接口,P3 ...