Python理论之一 —— 数据读写

news2025/7/29 22:02:27

文章目录

  • 1. Excel
    • 1.1 openpyxl 模块
      • 1.1.1 打开表格、读取/获取信息
        • 1.1.1.1 打开表格、获取表格内sheet名:
        • 1.1.1.2 根据sheet名获取工作表
        • 1.1.1.3 获取表格的尺寸大小:尺寸大小指excel表格中的数据有几行几列
        • 1.1.1.4 获取表格内某个格子的数据:
        • 1.1.1.5 获取表格内某行某列的数据:
        • 1.1.1.6 获取某个格子的行数、列数、坐标:
        • 1.1.1.7 获取一系列格子的内容:
      • 1.1.2 写入、修改、样式配置
        • 1.1.2.1 写入某单元格内容
        • 1.1.2.2 插入行数据:
        • 1.1.2.3 使用公式:
        • 1.1.2.4 插入空行、空列:
        • 1.1.2.5 删除行、列:
        • 1.1.2.6 移动单元格:
        • 1.1.2.7 修改字体样式:
        • 1.1.2.8 获取表格中格子的字体样式:
        • 1.1.2.9 设置对齐样式:
        • 1.1.2.10 设置边框样式:
        • 1.1.2.11 设置填充样式:
        • 1.1.2.12 设置行高和列宽:
        • 1.1.2.13 合并/取消合并单元格:
      • 1.1.3 工作表sheet相关操作
        • 1.1.3.1 创建新的sheet表格:
        • 1.1.3.2 删除某个sheet表:
        • 1.1.3.3 复制一个sheet表到另外一张excel表
        • 1.1.3.4 修改sheet表的名称:
        • 1.1.3.5 创建新的excel文件:
        • 1.1.3.6 冻结单元格:
  • 2. word

1. Excel


from tkinter import Tk
from time import sleep
from tkinter.messagebox import showwarning # 用于弹出窗口
import win32com.client as win32 # 安装模块 pypiwin32

warn=lambda app:showwarning(app,'即将退出进程')
Range=range(3,8)

def excel():
    app='Excel'
    xl=win32.gencache.EnsureDispatch('%s.Application'%app) # 调度 excel 进程
    ss=xl.Workbooks.Add() # 添加一个工作表
    sh=ss.ActiveSheet # 获取一个活动的工作表
    xl.Visible=True # 显示电子表格
    sleep(1)
    sh.Cells(1,1).Value='python -to-%s Demo'%app # 在(1,1)(行,列)即 A1 写入内容
    sleep(1)
    for i in Range: # 循环在(i行,1列)中写入内容
        sh.Cells(i,1).Value='Line %d'%i
        sleep(1)
    sh.Cells(i+2,1).Value="Th-th-th-that's all folks!"
    warn(app) # 弹出退出警告框
    ss.Close(False) # 不保存并关闭应用
    xl.Application.Quit() # 退出应用

if __name__=='__main__':
    Tk().withdraw() # 使用 withdraw() 方法不让 tk 顶级窗口出现
    # 如果没有事先初始化顶级窗口,那么 Tk 会为你自动创建一个,而且不会将其隐藏,这样会在你的屏幕上造成一定的干扰。
    excel()

1.1 openpyxl 模块

  1. openpyxl 模块只支持【.xlsx / .xlsm / .xltx / .xltm】格式的文件
  2. openpyxl 模块官网

注:一个excel文件叫一个工作簿,工作簿内的每个Sheet 叫工作表;
在这里插入图片描述

1.1.1 打开表格、读取/获取信息

1.1.1.1 打开表格、获取表格内sheet名:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
print(workbook.sheetnames) # 获取并查看表格内sheet名

1.1.1.2 根据sheet名获取工作表

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
workbook.sheetnames # 获取并查看表格内sheet名
sheet = workbook["Sheet1"] # 获取名为"Sheet1"的工作表
print(sheet)

1.1.1.3 获取表格的尺寸大小:尺寸大小指excel表格中的数据有几行几列

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
workbook.sheetnames # 获取并查看表格内sheet名
sheet = workbook["Sheet1"] # 获取名为"Sheet1"的工作表
print(sheet.dimensions) # 获取表格的尺寸大小

1.1.1.4 获取表格内某个格子的数据:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
cell1 = sheet["A1"] # 查看当前sheet中A1格子的内容
cell2 = sheet["C11"] # 查看当前sheet中C11格子的内容
print(cell1.value, cell2.value)

1.1.1.5 获取表格内某行某列的数据:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
cell1 = sheet.cell(row = 1,column = 1) # 查看当前sheet中1行1列格子的内容
cell2 = sheet.cell(row = 11,column = 3) # 查看当前sheet中11行3列格子的内容
print(cell1.value, cell2.value)

1.1.1.6 获取某个格子的行数、列数、坐标:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
cell1 = sheet["A1"]
cell2 = sheet["C11"]
print(cell1.value, cell1.row, cell1.column, cell1.coordinate)
print(cell2.value, cell2.row, cell2.column, cell2.coordinate)
"""
.row 获取某个格子的行数;
.columns 获取某个格子的列数;
.corordinate 获取某个格子的坐标;
"""

1.1.1.7 获取一系列格子的内容:

方式一:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
# 获取A1到C2区域的值,按行获取,即A1,B1,C1,A2,B2,C2共6个单元格
cell = sheet["A1:C2"]
print(cell)
for i in cell: # 循环打印内容
    for j in i:
        print(j.value)

其他获取方式:

sheet["A"]    --- 获取A列的数据
sheet["A:C"]    --- 获取A,B,C三列的数据
sheet[5]   --- 只获取第5行的数据

方式二:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
# 按行获取值
for i in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=2): # 获取行2到行5,列1到列2内的所有内容,并以行顺序读取数据
    for j in i:
        print(j.value)
# 按列获取值
for i in sheet.iter_cols(min_row=2, max_row=5, min_col=1, max_col=2): # 获取行2到行5,列1到列2内的所有内容,并以列顺序读取数据
    for j in i:
        print(j.value)

在这里插入图片描述


方式三:按行获取所有数据

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
for i in sheet.rows: # 按行获取所有数据
        print(i)

1.1.2 写入、修改、样式配置

1.1.2.1 写入某单元格内容

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
sheet["A1"] = "2333" # 写入A1单元格内容

# 写入A1单元格内容的另一种方式
cell = sheet["A1"]
cell.value = "2333"

workbook.save(filename = "newExcelFile.xlsx") # 以特定名称保存excel文件

1.1.2.2 插入行数据:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
data = [
    ["唐僧","男","180cm"],
    ["孙悟空","男","188cm"],
    ["猪八戒","男","175cm"],
    ["沙僧","男","176cm"],
]
for row in data: # 会在表格已有的数据后面,插入这些数(按行插入)
    sheet.append(row)
workbook.save(filename = "test.xlsx") # 保存表格

在这里插入图片描述

1.1.2.3 使用公式:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print(sheet)
sheet["D1"] = "标准身高"
for i in range(1,9):
    sheet["D{}".format(i)] = '=IF(RIGHT(C{},2)="cm",C{},SUBSTITUTE(C{},"m","")*100&"cm")'.format(i,i,i) # 使用函数公式,实现单位转换:将单位为m的数值转换为单位为cm的数值
workbook.save(filename = "test.xlsx") # 保存文件

在这里插入图片描述


查看支持的excel函数公式:

from openpyxl.utils import FORMULAE
print(FORMULAE)

1.1.2.4 插入空行、空列:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
sheet.insert_cols(idx=4,amount=2) # 插入空列,即在第4列开始插入2列空列
sheet.insert_rows(idx=5,amount=4) # 插入空行,即在第5行开始插入4行空行
workbook.save(filename = "test.xlsx") # 保存文件

# .insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入;
# .insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入;

在这里插入图片描述

1.1.2.5 删除行、列:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
# 删除第一列,第一行
sheet.delete_cols(idx=1)
sheet.delete_rows(idx=1)
workbook.save(filename = "test.xlsx") # 保存文件

1.1.2.6 移动单元格:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
# 向左移动两列,向下移动两行
sheet.move_range("B6:C7",rows=2,cols=2) # 移动单元格,即B6到C7的所有单元格,向右移动两个,向下移动两格
workbook.save(filename = "test.xlsx") # 保存文件

# .move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上;rows表示行左右移动,cols表示列上下移动

1.1.2.7 修改字体样式:

from openpyxl.styles import Font
from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
cell = sheet["A1"] # 获取A1单元格内容
font = Font(name="微软雅黑",size=20,bold=True,italic=True,color="FF0000") # color是RGB的16进制表示
cell.font = font # 修改单元格样式
workbook.save(filename = "test.xlsx")

在这里插入图片描述

1.1.2.8 获取表格中格子的字体样式:

from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
cell = sheet["A1"] # 获取A1单元格内容
font = cell.font # 获取表格中格子的字体样式 
print(font.name, font.size, font.bold, font.italic, font.color)

运行结果:

微软雅黑 20.0 True True <openpyxl.styles.colors.Color object>
Parameters:
rgb='00FF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'

Process finished with exit code 0

1.1.2.9 设置对齐样式:

from openpyxl.styles import Alignment
from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
cell = sheet["A1"] # 获取A1单元格内容
alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True)
cell.alignment = alignment # 设置单元格对齐样式
workbook.save(filename = "test.xlsx")

# Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
# 水平对齐:‘distributed’,‘justify’,‘center’,‘leftfill’, ‘centerContinuous’,‘right,‘general’;
# 垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’;

在这里插入图片描述

1.1.2.10 设置边框样式:

from openpyxl import load_workbook
from openpyxl.styles import Border, Side

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
cell = sheet["D6"]
side1 = Side(style="thin",color="FF0000")
side2 = Side(style="thick",color="FFFF0000")
border = Border(left=side1,right=side1,top=side2,bottom=side2)
cell.border = border # 设置该单元格的边框样式
workbook.save(filename = "test.xlsx")

查看边框线的内置 styles:

from openpyxl.styles import Border, Side, borders
print(dir(borders))

在这里插入图片描述

1.1.2.11 设置填充样式:

from openpyxl.styles import PatternFill,GradientFill
from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
cell_b9 = sheet["B9"]
pattern_fill = PatternFill(fill_type="solid",fgColor="99ccff")
cell_b9.fill = pattern_fill # 填充单元格
cell_b10 = sheet["B10"]
gradient_fill = GradientFill(stop=("FFFFFF","99ccff","000000"))
cell_b10.fill = gradient_fill # 填充单元格
workbook.save(filename = "test.xlsx")

# PatternFill(fill_type=填充样式,fgColor=填充颜色)
# GradientFill(stop=(渐变颜色1,渐变颜色2……))

在这里插入图片描述


查看支持的单元格填充样式:

from openpyxl.styles import PatternFill,GradientFill
print(gradient_fill)

1.1.2.12 设置行高和列宽:

from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
# 设置第1行的高度
sheet.row_dimensions[1].height = 50
# 设置B列的宽度
sheet.column_dimensions["B"].width = 20
workbook.save(filename = "test.xlsx")
"""
sheet.row_dimensions.height = 50
sheet.column_dimensions.width = 30
这两句代码,是将整个表的行高设置为50,列宽设置为30;
"""

1.1.2.13 合并/取消合并单元格:

from openpyxl import load_workbook

workbook = load_workbook(filename="test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
sheet.merge_cells("C1:D2") # 合并C1到D2的单元格
sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)
workbook.save(filename = "test.xlsx")

# .merge_cells(待合并的格子编号)
# .merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
# 取消合并单元格:
# .unmerge_cells(待合并的格子编号)
# .unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

1.1.3 工作表sheet相关操作

1.1.3.1 创建新的sheet表格:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
workbook.create_sheet("这是一个新的sheet")
print(workbook.sheetnames)
workbook.save(filename = "test.xlsx")

1.1.3.2 删除某个sheet表:

workbook.remove(sheet)

1.1.3.3 复制一个sheet表到另外一张excel表

from openpyxl import load_workbook

workbook = load_workbook(filename = "a.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
print("a.xlsx中有这几个sheet表:",workbook.sheetnames)
sheet = workbook['姓名'] # 获取名为“姓名”的工作表
workbook.copy_worksheet(sheet) # 复制该工作表
workbook.save(filename = "a.xlsx") # 保存文件

在这里插入图片描述

1.1.3.4 修改sheet表的名称:

from openpyxl import load_workbook

workbook = load_workbook(filename = "a.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
sheet.title = "这是修改后的sheet名" # 修改工作表名
print(sheet)
workbook.save(filename = "a.xlsx") # 保存文件

在这里插入图片描述

1.1.3.5 创建新的excel文件:

from openpyxl import Workbook

workbook = Workbook() # 获取一个表格
sheet = workbook.active # 获取当前活动的sheet
sheet.title = "表格1" # 修改工作表名
workbook.save(filename = "新建的excel表格.xlsx") # 保存文件

1.1.3.6 冻结单元格:

from openpyxl import load_workbook

workbook = load_workbook(filename = "test.xlsx") # 打开并获取表格
sheet = workbook.active # 获取当前活动的sheet
sheet.freeze_panes = ("A2") # 冻结首行
workbook.save(filename = "test.xlsx") # 保存文件

2. word


与 Excel 相似,唯一的不同是,Excel 中是写入单元格,而在 Word 中则是在文档的文本“范围”内插入字符串。

from tkinter import Tk
from time import sleep
from tkinter.messagebox import showwarning
import win32com.client as win32

warn=lambda app:showwarning(app,'即将退出进程')
Range=range(3,8)

def word():
    app='Word'
    word=win32.gencache.EnsureDispatch('%s.Application'%app) # 调度 word 进程
    doc=word.Documents.Add() # 添加一个 word 文档
    word.Visible=True # 显示该文档
    sleep(1)

    rng=doc.Range(0,0)
    rng.InsertAfter('Python-to-%s Test \r\n\r\n'%app)
    sleep(1)
    for i in Range:
        rng.InsertAfter('line %d\r\n'%i)
        sleep(1)

    rng.InsertAfter("\r\n th-th-th-that")
    warn(app) # 弹出警告框
    doc.Close(False) # 不保存并关闭
    word.Application.Quit() # 退出进程

if __name__=='__main__':
    Tk().withdraw()
    word()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电影《扫黑行动》观后感

上周看了电影《扫黑行动》&#xff0c;讲述三年扫黑除恶专项行动中的一个具体事件。 记得前几年&#xff0c;估计你也听过类似新闻&#xff0c;就是大学贷&#xff0c;学生贷等等系列&#xff0c;面向学生的贷款&#xff0c;借钱的人明知道&#xff0c;学生一般是没有偿还能力的…

在家每次开门都安心,在外也能芝麻开门——云米AI智能门锁Super 2体验

很多人都遇到过出门忘带钥匙的尴尬&#xff0c;好在如今有了智能门锁这种看家好工具&#xff0c;既可以通过密码、指纹等多种方式轻松开锁&#xff0c;又可以随时通过手机APP来查看异常情况&#xff0c;确实是现在居家必备的好东西。这个月我也把家里大门上不太好用的老锁&…

IPWorks WebSockets Delphi版

IPWorks WebSockets Delphi版 IPWorks WebSocket包括一组功能强大的组件&#xff0c;用于将WebSocket通信功能集成到Web、桌面和移动应用程序中。这些组件非常适合构建需要实时数据的Web连接应用程序&#xff0c;包括聊天、多人游戏、实时金融应用程序等。 IPWorks WebSockets功…

Linux18 ---进程和线程、线程实现方法、线程的使用接口、多线程代码实现、线程并发运行

一、进程和线程&#xff1a; 1、进程和线程的相关概念&#xff1a; 进程&#xff1a;是一个正在运行的程序&#xff0c;是个动态的概念。一个进程可以实现多个线程。 线程&#xff1a;是进程内部的一条执行路径或称为执行序列&#xff0c;不同平台下线程的实现机制不相同&am…

基于Android车载系统模块资料

在从事车载Android应用开发前&#xff0c;必须要对汽车座舱的基本结构有一个大体的认知&#xff0c;只有意识到汽车座舱是一种与手机完全不同的架构&#xff0c;才能更好的助力我们日后学习车载Android应用的开发。下面就来介绍一个比较主流的车载操作系统架构。 注意&#xff…

Unity实现一个可扩展的UGUI无限滑动列表控件

采用 缓存池存储布局坐标 实现的一个可横向或纵向滑动的无限滑动列表 Demo展示&#xff1a; 功能支持&#xff1a; 可以满足大部分如背包&#xff0c;商店商城&#xff0c;工具栏&#xff0c;任务栏窗口等列表功能 支持整个列表刷新或单个对象刷新支持横向多行滑动&#xff…

【Python】快速入门

目录 基础储备 Python输出&#xff1a; Python换行&#xff1a; Python命名规则&#xff1a; Python变量: Python运算&#xff1a; Python注释&#xff1a; 小点&#xff1a; Python的两种模式&#xff1a; Python的用户问答互动程序&#xff1a; Python条件语句 P…

Kubernetes-in-action (一)

Kubernetes-in-action (一) 链接为书内容中对应代码的地址&#xff1a;https://github.com/luksa/kubernetes-in-action 前置之 docker 基础 安装docker使用docker安装镜像、进入镜像&#xff0c;查看进行信息docker build -t kubia . # 使用当前目录的Dockerfile构建镜像&…

m基于Matlab的fir和iir数字滤波器的设计与仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 MATLAB系统供了许多工具箱&#xff08;Toolbox&#xff09;&#xff0c;借助于信号处理工具箱&#xff08;signal processing&#xff09;中的freqz_m&#xff0c;remez等函数&#xff0…

软件测试 | 测试工程师都能看懂的redis,进阶测试开发工程师......

目录&#xff1a;导读前言一、Redis是什么&#xff1f;为啥性能好&#xff1f;二、数据类型&#xff1f;常见的命令&#xff1f;1、String 字符串类型2、Hash 数据类型3、List 链表数据4、Set 无序集合类型5、Zset 有序集合类型三、有几种持久化方式&#xff1f;优缺点?四、数…

Flink-输出算子(Sink)使用

5.5 输出算子 5.5.1 概述 print也是一种输出类PrintSinkFunction 创建了一个PrintSinkFunction操作&#xff0c;然后调用addSink方法的作为传入参数 PrintSinkFunction这个类继承自RichSinkFunction富函数类 RichSourceFunction类 继承了AbstractRichFunction富函数类 …

springboot2整合开发流程示例

1.整体开发逻辑 初始配置示例 开发文件示例 2.开发过程问题 ①默认配置路径 thymeleaf默认解析静态资源路径为 /templates/** ②mybatisplus核心工作原理 mapper继承的BaseMapper中声明了CRUD操作service接口继承的IService接口中抽象方法简单封装了CRUD操作 传入了类&a…

Win10系统如何安装配置maven

【原文链接】Win10系统如何安装配置maven &#xff08;1&#xff09;若未装jdk&#xff0c;可先参考 Win10系统下载安装配置JDK1.8 安装jdk8 &#xff08;2&#xff09;从 maven下载地址 &#xff0c;下载maven&#xff0c;如下&#xff0c;可以下载最新版本&#xff0c;也可…

【JVM】JVM详解

目录一.JVM概述1.jvm简介2.jvm作用3.jvm的内存模型二.类加载器1.类加载器的作用2.加载器的类型3.双亲委派机制的运行过程(面试题)三.JVM内存模块1.方法区2.堆3.栈(虚拟机栈)4.栈(本地方法栈)5.OutOfMemoryError内存溢出和StackOverFlowError栈溢出及解决方法(面试题)(1).OutOfM…

利用ogg微服务版将oracle同步到kafka

ogg微服务版可以再界面上配置抽取、复制进程&#xff0c;不必进入到shell中进行配置&#xff0c;并且图形化界面可以看到更多信息。 系统架构 源端安装ogg for oracle 19C , 目标端安装ogg for bigdata 21C kafka 2.2 数据库&#xff1a;19C 所有软件安装在同台服务器上&#…

操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统

操作系统4小时速成&#xff1a;文件管理&#xff0c;文件结构&#xff0c;属性&#xff0c;基本操作&#xff0c;逻辑有无结构&#xff0c;目录结构&#xff0c;文件系统 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能…

2397. 被列覆盖的最多行数-深度优先枚举+二进制检索

2397. 被列覆盖的最多行数-深度优先枚举二进制检索 给你一个下标从 0 开始的 m x n 二进制矩阵 mat 和一个整数 cols &#xff0c;表示你需要选出的列数。 如果一行中&#xff0c;所有的 1 都被你选中的列所覆盖&#xff0c;那么我们称这一行 被覆盖 了。 请你返回在选择 co…

Spring Security内部工作原理

定义 Spring 安全性是 Spring提供的一个框架&#xff0c;有助于自定义访问和身份验证过程。它在保护应用程序方面起着非常关键的作用。 Spring 安全性&#xff0c;主要侧重于身份验证和授权&#xff0c;为 Java 应用程序提供所有好处。它非常有用&#xff0c;并提供了一种在实…

抑制细胞代谢紊乱的抑制剂

作者团队发现&#xff0c;缺乏 CD4 T 细胞能保护小鼠免受应激诱导的焦虑样行为&#xff0c;物理应激诱导的白三烯 B4 (LTB4) 触发 CD4 T 细胞中的严重线粒体裂变&#xff0c;进而导致各种行为异常&#xff0c;包括焦虑&#xff0c;抑郁和社交障碍。代谢组和单细胞转录组学显示…

Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、跟踪滑动轨迹实现手写签名 手写签名的原理是把手机屏幕当作画板&#xff0c;把用户手指当作画笔&#xff0c;手指在屏幕上划来划去&#xff0c;屏幕就会显示手指的移动轨迹&#xff0c;就像画笔在画板上写字一样&#…