pandas操作Excel文件

news2024/11/22 17:23:57

pandas操作Excel文件

  • 一、前言
  • 二、指定读取的工作表与header设置
    • 2.1指定工作表
    • 2.2header设置
  • 三、读取Excel数据
    • 3.1iloc读取数据
    • 3.2read_excel读取数据
    • 3.3loc读取数据
  • 四、DataFrame数据筛选
    • 4.1根据列标签对整列进行筛选
    • 4.2使用iloc对区域进行筛选
    • 4.3自定义筛选
  • 五、DataFrame类型与numpy数组相互转换
    • 5.1DataFrame类型转换为numpy数组
    • 5.2numpy数组转换为DataFrame类型
  • 六、写入Excel文件

一、前言

在python语言中,相较于其他操作Excel文件的工具包,pandas提供了高层次的数据操作接口,读取Excel中的数据更方便,且DataFrame数据结构可与numpy数组相互转换,便于后续数据处理与保存。

二、指定读取的工作表与header设置

2.1指定工作表

pandas可以根据工作表的名称或索引指定读取工作表,也可以将工作簿中的工作表全部读取,示例代码如下:

import pandas as pd

excel_data = pd.read_excel('data.xlsx', sheet_name = 'Sheet1')#指定读取名为Sheet1的工作表
excel_data = pd.read_excel('data.xlsx', sheet_name = 1)#指定读取第二个工作表,如只有一个工作表则报错
excel_data = pd.read_excel('data.xlsx', sheet_name = None)#读取所有工作表,返回一个字典,字典中键名为工作表名称,键值为DataFrame格式的工作表内容
excel_data = pd.read_excel('data.xlsx')#不指定读取的工作表时,默认读取第一个工作表

2.2header设置

以读取data.xlsx工作簿的Sheet1工作表为例,表格内容如下图,
在这里插入图片描述

示例代码如下:

import pandas as pd

excel_data = pd.read_excel('data.xlsx')
data = excel_data.iloc[0:3, 0:1]#索引从0开始,读取第一行至第三行、第一列的数据
print(data)#输出如下
   0.53
0  0.45
1  0.66
2  0.72

data = excel_data.iloc[1:3, 0:1]#读取第二行至第三行、第一列的数据
print(data)#输出如下
   0.53
1  0.66
2  0.72

上述读取Excel指定区域的代码,默认将读取的excel文件中的第一行数据当做了列标签,所以读取的第一行数据其实是Excel中的第二行数据,即0.45而不是0.53。注意0.45前的0为索引,即认为是第一行数据,而0.53前没有索引,将其认为是列的标签。

如果Excel中第一行不是列标签,那么可以通过如下代码设置取消掉header标识

excel_data = pd.read_excel('data.xlsx', header = None)
data = excel_data.iloc[0:3, 0:1]#索引从0开始,读取第一行至第三行、第一列的数据
print(data)#输出如下
      0
0  0.53
1  0.45
2  0.66

data = excel_data.iloc[1:3, 0:1]#读取第二行至第三行、第一列的数据
print(data)#输出如下
      0
1  0.45
2  0.66

0.53前索引为0,即认为是第一行数据,0.45前索引为1,即认为是第二行数据,与Excel文件中的实际内容相吻合。

三、读取Excel数据

3.1iloc读取数据

使用iloc函数读取Excel指定区域数据的语法几乎与numpy二维数组的读取语法完全相同,如果对numpy数组切片读取很熟悉那么对iloc的用法可以快速掌握。

iloc读取数据时,先指定行,再指定列,索引从0开始,可指定读取一块区域数据,也可指定读取整行或整列数据,示例代码如下:

excel_data = pd.read_excel('data.xlsx', header = None)
data = excel_data.iloc[0:5, 0:4]#读取第一行至第五行、第一列至第四列的数据
print(data)#输出如下
      0     1     2     3
0  0.53  0.42  0.46  0.63
1  0.45  0.63  0.60  0.56
2  0.66  0.54  0.79  0.61
3  0.72  0.49  0.68  0.43
4  0.73  0.49  0.67  0.66

data = excel_data.iloc[0:, 0:4]#读取第一列至第四列整列的数据,行中如有空格则会被读取为NaN值
data = excel_data.iloc[:, 0:4]#与上行代码结果相同
print(data)#输出如下
        0      1      2      3
0    0.53   0.42   0.46   0.63
1    0.45   0.63   0.60   0.56
2    0.66   0.54   0.79   0.61
3    0.72   0.49   0.68   0.43
4    0.73   0.49   0.67   0.66
5    0.62   0.58   0.80   0.34
6    0.30   0.53   0.44   0.59
7    0.52   0.63   0.56   0.46
8    0.57   0.40   0.52   0.76
9    0.72   0.62   0.33   0.59

data = excel_data.iloc[0:5, 0:]#读取第一行至第五行整行的数据,列中如有空格则会被读取为NaN值
data = excel_data.iloc[0:5, ]#与上行代码结果相同
data = excel_data.iloc[0:5]#与上行代码结果相同
print(data)#输出如下
        0      1      2      3
0    0.53   0.42   0.46   0.63
1    0.45   0.63   0.60   0.56
2    0.66   0.54   0.79   0.61
3    0.72   0.49   0.68   0.43
4    0.73   0.49   0.67   0.66

3.2read_excel读取数据

read_excel是读取Excel文件时调用的函数方法,返回的是包含工作表全部内容的DataFrame结构数据,可以通过设置read_excel的参数读取整行或整列数据,但无法像iloc那样可以灵活读取指定区域的数据,示例代码如下:

data = pd.read_excel('data.xlsx', header = None, skiprows = 2, nrows = 2)#跳过前两行,读取第三行和第四行整行数据
print(data)#输出如下
        0      1      2      3
0    0.66   0.54   0.79   0.61
1    0.72   0.49   0.68   0.43

data = pd.read_excel('data.xlsx', header = None, usecols = [0, 2])#读取第一列和第三列整列数据
data = pd.read_excel('data.xlsx', header = None, usecols = 'A,C')#与上行代码结果相同
print(data)#输出如下
        0      2
0    0.53   0.46
1    0.45   0.60
2    0.66   0.79
3    0.72   0.68
4    0.73   0.67
5    0.62   0.80
6    0.30   0.44
7    0.52   0.56
8    0.57   0.52
9    0.72   0.33

data = pd.read_excel('data.xlsx', header = None, usecols = 'A:C')#读取第一列至第三列整列数据
print(data)#输出如下
        0      1      2
0    0.53   0.42   0.46
1    0.45   0.63   0.60
2    0.66   0.54   0.79
3    0.72   0.49   0.68
4    0.73   0.49   0.67
5    0.62   0.58   0.80
6    0.30   0.53   0.44
7    0.52   0.63   0.56
8    0.57   0.40   0.52
9    0.72   0.62   0.33

3.3loc读取数据

loc函数是基于行列标签读取数据,如果工作表中存在行列标签,就可以通过指定标签读取数据,但行列标签名必须唯一不能重复,否则会报错,也可以临时增加列标签和行标签(pandas中称为行索引)

读取整列数据示例代码如下:

excel_data = pd.read_excel('data.xlsx')
data = excel_data.loc[:, 0.42]#读取以0.42为列标签的整列数据
data = excel_data[0.42]#与上行代码结果相同
print(data)#输出如下
0      0.63
1      0.54
2      0.49
3      0.49
4      0.58
5      0.53
6      0.63
7      0.40
8      0.62

data = excel_data.loc[:, 0.42:0.63]#读取从列标签0.42至0.63的整列数据
print(data)#输出如下
     0.42   0.46   0.63
0    0.63   0.60   0.56
1    0.54   0.79   0.61
2    0.49   0.68   0.43
3    0.49   0.67   0.66
4    0.58   0.80   0.34
5    0.53   0.44   0.59
6    0.63   0.56   0.46
7    0.40   0.52   0.76
8    0.62   0.33   0.59

data = excel_data.loc[:, [0.42, 0.63]]#读取从列标签0.42、0.63的整列数据
print(data)#输出如下
     0.42   0.63
0    0.63   0.56
1    0.54   0.61
2    0.49   0.43
3    0.49   0.66
4    0.58   0.34
5    0.53   0.59
6    0.63   0.46
7    0.40   0.76
8    0.62   0.59

excel_data.columns = ['column01', 'column02', 'column03', 'column04']#临时增加列标签,但会覆盖掉之前已有的列标签
data = excel_data.loc[:, 'column01':'column03']#读取从列标签column01至column3的整列数据
print(data)#输出如下
   column01  column02  column03
0      0.45      0.63      0.60
1      0.66      0.54      0.79
2      0.72      0.49      0.68
3      0.73      0.49      0.67
4      0.62      0.58      0.80
5      0.30      0.53      0.44
6      0.52      0.63      0.56
7      0.57      0.40      0.52
8      0.72      0.62      0.33

读取整行数据示例代码如下:

excel_data = pd.read_excel('data.xlsx', index_col = 0)#将第一列设置为行标签
data = excel_data.loc[0.45]#读取以0.45为行标签的整行数据
print(data)#输出如下
0.42            0.630
0.46            0.600
0.63            0.560

data = excel_data.loc[0.45:0.66]#读取行标签从0.45至0.66的整行数据
print(data)#输出如下
      0.42  0.46  0.63
0.53
0.45  0.63  0.60  0.56
0.66  0.54  0.79  0.61

data = excel_data.loc[0.45, 0.42]#读取行标签为0.45,列标签为0.42的单元格数据
print(data)#输出如下
0.63

excel_data.index=['row01', 'row02', 'row03', 'row04', 'row05', 'row06', 'row07', 'row08', 'row09']#临时增加行标签,但会覆盖掉之前已有的行标签
data = excel_data.loc['row01':'row05']#读取行标签从row01至row05的整行数据
print(data)#输出如下
       0.42  0.46  0.63
row01  0.63  0.60  0.56
row02  0.54  0.79  0.61
row03  0.49  0.68  0.43
row04  0.49  0.67  0.66
row05  0.58  0.80  0.34

注意,行列标签如果为数值形式,那么在索引时直接以数值作索引,如果标签名为字符串,需要对字符串加上单引号或双引号。

四、DataFrame数据筛选

DataFrame数据筛选主要有以下三类:

4.1根据列标签对整列进行筛选

示例代码如下:

excel_data = pd.read_excel('data.xlsx', header = None)
excel_data.columns = ['column01', 'column02', 'column03', 'column04']
data = excel_data[excel_data['column01'] > 0.7]#筛选出column01列大于0.7的整行数据
data = excel_data.query('column01 > 0.7')#与上行代码结果相同
print(data)#输出如下
   column01  column02  column03  column04
3      0.72      0.49      0.68      0.43
4      0.73      0.49      0.67      0.66
9      0.72      0.62      0.33      0.59

data = excel_data[excel_data['column01'].between(0.6, 0.7)]#筛选出column01列0.6与0.7之间的整行数据
data = excel_data.query('column01 >= 0.6 and column01 <= 0.7')#与上行代码结果相同
print(data)#输出如下
   column01  column02  column03  column04
2      0.66      0.54      0.79      0.61
5      0.62      0.58      0.80      0.34

excel_data['column01'][0]='abc'#将column01列的第一行单元格赋值为abc
data = excel_data[excel_data['column01'].str.contains('a', case = False, na = False)]#筛选column01列中包含a的整行数据
print(data)#输出如下
  column01  column02  column03  column04
0      abc      0.42      0.46      0.63

data = excel_data[excel_data['column01'].isin([0.30,0.45, 'abc'])]#筛选column01列中是否包含指定的值
print(data)#输出如下
  column01  column02  column03  column04
0      abc      0.42      0.46      0.63
1     0.45      0.63      0.60      0.56
6      0.3      0.53      0.44      0.59

4.2使用iloc对区域进行筛选

示例代码如下:

excel_data = pd.read_excel('data.xlsx', header = None)
data = excel_data.iloc[0:5, 0:4]#读取第一行至第五行、第一列至第四列的数据
print(data)#输出如下
      0     1     2     3
0  0.53  0.42  0.46  0.63
1  0.45  0.63  0.60  0.56
2  0.66  0.54  0.79  0.61
3  0.72  0.49  0.68  0.43
4  0.73  0.49  0.67  0.66

data = data[data > 0.7]#筛选出区域内大于0.7的数据
print(data)#输出如下
      0   1     2   3
0   NaN NaN   NaN NaN
1   NaN NaN   NaN NaN
2   NaN NaN  0.79 NaN
3  0.72 NaN   NaN NaN
4  0.73 NaN   NaN NaN

data = excel_data[excel_data.iloc[:, 0] > 0.7]#筛选出第一列大于0.7的整行数据
print(data)#输出如下
      0     1     2     3
3  0.72  0.49  0.68  0.43
4  0.73  0.49  0.67  0.66
9  0.72  0.62  0.33  0.59

从上述代码可看出,对区域进行筛选,有可能出现NaN值

4.3自定义筛选

自定义筛选适用于筛选条件较为复杂的情况,通过apply函数实现,示例代码如下:

def filter_1(row):
    return row[0] > 0.7

excel_data = pd.read_excel('data.xlsx', header = None)
data = excel_data[excel_data.apply(filter_1, axis = 1)]#筛选出第一列大于0.7的整行数据
print(data)#输出如下
      0     1     2     3
3  0.72  0.49  0.68  0.43
4  0.73  0.49  0.67  0.66
9  0.72  0.62  0.33  0.59

apply函数还可用于数据处理操作,示例代码如下:

excel_data = pd.read_excel('data.xlsx', header = None)
print(excel_data)#输出如下
      0     1     2     3
0  0.53  0.42  0.46  0.63
1  0.45  0.63  0.60  0.56
2  0.66  0.54  0.79  0.61
3  0.72  0.49  0.68  0.43
4  0.73  0.49  0.67  0.66
5  0.62  0.58  0.80  0.34
6  0.30  0.53  0.44  0.59
7  0.52  0.63  0.56  0.46
8  0.57  0.40  0.52  0.76
9  0.72  0.62  0.33  0.59

new_data = excel_data.iloc[:, 0].apply(lambda x: x * 2)
print(new_data)#输出如下
0    1.06
1    0.90
2    1.32
3    1.44
4    1.46
5    1.24
6    0.60
7    1.04
8    1.14
9    1.44

五、DataFrame类型与numpy数组相互转换

5.1DataFrame类型转换为numpy数组

pandas读取Excel数据返回的是DataFrame数据结构,将其转换为numpy数组代码如下:

import numpy as np

data = excel_data.iloc[0:3, 0:4]#读取第一行至第三行、第一列至第四列的数据
print(type(data))#输出如下
<class 'pandas.core.frame.DataFrame'>

print(data)#输出如下
      0     1     2     3
0  0.53  0.42  0.46  0.63
1  0.45  0.63  0.60  0.56
2  0.66  0.54  0.79  0.61

a01 = np.array(data)#转换为numpy数组
print(a01)#输出如下
[[0.53 0.42 0.46 0.63]
 [0.45 0.63 0.6  0.56]
 [0.66 0.54 0.79 0.61]]

data = excel_data.iloc[0:10, 0]#读取第一行至第十行、第一列的数据
print(type(data))#输出如下
<class 'pandas.core.series.Series'>

print(data)#输出如下
0    0.53
1    0.45
2    0.66
3    0.72
4    0.73
5    0.62
6    0.30
7    0.52
8    0.57
9    0.72
Name: 0, dtype: float64

a01 = np.array(data)#转换为numpy数组
print(a01)#输出如下
[0.53 0.45 0.66 0.72 0.73 0.62 0.3  0.52 0.57 0.72]

data = excel_data.iloc[0:10, 0:1]#读取第一行至第十行、第一列的数据
print(type(data))#输出如下
<class 'pandas.core.frame.DataFrame'>

print(data)#输出如下
      0
0  0.53
1  0.45
2  0.66
3  0.72
4  0.73
5  0.62
6  0.30
7  0.52
8  0.57
9  0.72

a01 = np.array(data)#转换为numpy数组
print(a01)#输出如下
[[0.53]
 [0.45]
 [0.66]
 [0.72]
 [0.73]
 [0.62]
 [0.3 ]
 [0.52]
 [0.57]
 [0.72]]

通过上述代码可看出,pandas不总是返回DataFrame类型,有时也返回Series类型,这与读取数据时指定单行单列或多行多列有关,而在转换为numpy数组时,DataFrame类型转换成二维数组,Series类型转换成一维数组

另外,如果DataFrame中包含标签,标签并不会被一起转换为numpy数组

5.2numpy数组转换为DataFrame类型

示例代码如下:

np_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
data = pd.DataFrame(np_array)
print(data)#输出如下
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

data = pd.DataFrame(np_array, columns=['column01', 'column02', 'column03'])#指定列标签
print(data)#输出如下
   column01  column02  column03
0         1         2         3
1         4         5         6
2         7         8         9

六、写入Excel文件

pandas是将DataFrame类型数据写入Excel文件中,可以向新文件写入,也可追加工作表写入,示例代码如下:

np_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
data = pd.DataFrame(np_array)
data.to_excel('test01.xlsx', sheet_name = 'data', index = False, header = False)#写入新Excel文件,index控制是否写入行索引,header控制是否写入列标签

with pd.ExcelWriter('test01.xlsx', mode = 'a', engine = 'openpyxl') as writer:#追加写入
	data.to_excel(writer, sheet_name = 'data02', index = False, header = False)

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

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

相关文章

2024年8月26日(线上考试系统,虚拟化技术部署,使用link)

[rootdocker ~]# systemctl start docker [rootdocker ~]# docker pull mysql 一、线上考试系统 虚拟化技术部署 1、部署前端服务器 project_exam_system.sql数据库文件 dist网络资源 1.将资源上传到服务器 C:\Users\89765>scp -r "D:\青岛实训\project_exam_system\d…

C语言典型例题52

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 题目&#xff1a; 例题4.4 相传古代印度国王舍罕要褒奖他聪明能干的宰相达依尔&#xff08;国际象棋发明者&#xff09;&#xff0c;问他需要什么&#xff0c;达依尔回答说&#xff1a;“国王只要在国际象棋的棋盘的…

Shader 中的渲染顺序

1、深度测试和深度写入 有了深度测试和深度写入发挥作用让我们不需要关心不透明物体的渲染顺序比如一个物体A 挡住了 物体B&#xff0c;即使底层逻辑中 先渲染A&#xff0c;后渲染B&#xff0c;我们也不用担心 B的颜色会把A覆盖&#xff0c;因为在进行深度测试时&#xff0c;远…

电池管理系统SOX算法资料优化目录2024.8.26

这篇文章主要写一下这一次更新的几个地方&#xff0c;有对原来的代码及模型进行优化的部分&#xff0c;也有新增加的代码和模型&#xff0c;我就把几个比较典型的给列了出来。但是还有好多的更新没有在下面展示出来&#xff0c;因为一个个展示出来太复杂了。如果你对更新的内容…

如何使用ssm实现基于 SSM 框架的宠物用品电子商务平台设计与实现+vue

TOC ssm258基于 SSM 框架的宠物用品电子商务平台设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科…

黑神话悟空妖怪平生录

黑神话悟空是一部特别好玩的单机游戏。上一个我这么喜欢的国产单机还是古剑奇谭三。 虽然黑神话的战斗系统和地图系统尚不完善&#xff0c;但是这里面的游记是真的做得很认真。 203个妖怪&#xff0c;203首小诗&#xff0c;203个妖生故事&#xff0c;带你去看妖怪的喜怒哀乐。…

freemarker模版注入

Freemarker模版注入漏洞 模版注入漏洞根因&#xff08;SSTI&#xff0c;服务器端模版注入&#xff09;freemarker介绍Freemarker模版注入漏洞关键点漏洞复现环境引入依赖poc 修复方案完整代码&#xff08;包含修复&#xff09;参考 模版注入漏洞根因&#xff08;SSTI&#xff0…

乾坤大挪移--将一个混乱的excel分类整理的辅助VBA代码

excel 乾坤大挪移 你不需要将工作表手动分类&#xff1b; 只需要在”已整理“的标题行增加标题列&#xff0c; listbox会自动获取”已整理“sheet中的标题列&#xff0c;并列出来 你只需要选中同一列中的单元格&#xff0c;点击想移动到的列表的类别&#xff0c;双击或者点…

【云故事探索】NO.7:「越用越上瘾」,中华财险 60% 研发人员用通义灵码提效

云布道师 中华联合财产保险股份有限公司运用“云大模型”技术革新业务&#xff0c;通过阿里云的通义灵码大幅提升编码效率&#xff0c;近60%的研发人员采用&#xff0c;采纳的生成代码占比约20%&#xff0c;显著提升了团队创新能力与代码质量&#xff0c;并积极探索大模型在更多…

基于SpringBoot的智慧党建系统+uniapp移动端+LW示例参考

1.项目介绍 技术栈环境&#xff1a;SpringBootthymeleafuniappIDEA NavicatMySQL 功能介绍&#xff1a; 后端功能&#xff1a;首页管理&#xff08;轮播图、通知公告、新闻管理&#xff09;、用户管理&#xff08;用户信息、用户反馈、用户订单、用户动态&#xff09;、其他…

一文搞定MybatisPlus

Mybatis简介 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 &#xff08;来自官网&#xff09; 体验Mybatisplus 1.创建SpringBoot工程&#xff0c;导入m…

HarmonyOS--认证服务-操作步骤

HarmonyOS–认证服务 文章目录 一、注册华为账号开通认证服务二、添加项目&#xff1a;*包名要与项目的包名保持一致三、获取需要的文件四、创建项目&#xff1a;*包名要与项目的包名保持一致五、添加json文件六、加入请求权限七、加入依赖八、修改构建配置文件&#xff1a;bui…

【UDS诊断】——0x34、0x36、0x37服务

&#x1f64b;‍♂️【UDS诊断服务介绍合集】系列&#x1f481;‍♂️点击跳转 文章目录 一、服务概述1.0x34服务——请求下载数据1.1.0x34格式 2.0x36服务——数据传输2.1.0x36格式 3.0x37服务——退出上传下载3.1.0x37格式 一、服务概述 Client端使用Routine Control服务来…

WIN32实现远程桌面监控

文章目录 完整代码API简介调试代码 后记reference 完整代码 server.cpp #include <winsock2.h> #include <Ws2tcpip.h> #include <windows.h> #include <stdio.h> #include <vector> #pragma comment(lib, "ws2_32.lib")LRESULT CAL…

什么是韦恩图,怎么制作?用这款软件在线绘制,简单又好用!

在日常工作和学习中&#xff0c;我们经常需要用图表来可视化呈现复杂的信息和关系。其中&#xff0c;韦恩图是一种简洁而强大的可视化工具&#xff0c;能够清晰地展现集合之间的关系&#xff0c;诸如包含与被包含、互斥、并列等。 不过对刚接触韦恩图的人而言&#xff0c;或多…

traceroute命令这样用,追踪主机路由没烦恼

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 晚上好&#xff0c;我的网工朋友。 网络的稳定性和可靠性对于业务连续性至关重要。当涉及到网络连接问题时&#xff0c;有一个强大的工具就是 tr…

Certum Domain Validation CA SHA2

Certum是波兰的一家数字证书厂家&#xff0c;该机构也是目前世界第四家兼容性在99%机构&#xff08;包括历史版本浏览器&#xff09;&#xff0c;目前在国内有授权提供商&#xff1a;Gworg提供签发和认证&#xff0c;拥有二级代理划分&#xff0c;适合长期做SSL证书业务或者集成…

年薪100K入职字节测试岗现在分享下我常背的软件测试面试题

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、APP测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

Linux文件编程(系统API调用)

文章目录 Linux文件编程标注C的IO缓存类型代码示例--缓存区的存在 文件I/O系统调用标准C库关于文件的输入输出函数FILE结构体文件描述符文件描述符与文件指针的相互转换 系统调用常用函数open函数&#xff08;打开或者创建文件&#xff09;creat函数&#xff08;创建一个现有文…

JAVA-封装

目录 一、封装的概念 二、封装扩展之包 1. 包的概念 2.导入包中的类 3.自定义包 4.常见的包 三、访问限定符 在同一包中&#xff1a; 在不同包中&#xff1a;​编辑 一、封装的概念 面向对象程序三大特性&#xff1a;封装、继承、多态。而类和对象阶段&#xff0c;主…