当前位置:   article > 正文

基于Python的Excel读写操作--内容超详细,值得排排坐_python遍历excel

python遍历excel

用法其实先类似,没有太大的差别,小伙伴记得机器创建一个文本跟着操作一下

想要读取全文,不想一直read_num = file.readline()下去,我们可以使用for循环!

file = open(r"text_make")

for read_num in range(10):

print(file.readline())

关闭文件释放资源

file.close()

这里的range(10)是行数哦,当文本内容不足十行,循环就停止了

2.3、readlines() 读取文件中所有文本的内容

file = open(r"text_make") # 记得加上,encoding=‘utf-8’

read_num1 = file.readlines()

#想要不以列表的形式输出,就使用for循环遍历吧

for read_num2 in read_num1:

print(read_num1)

关闭文件释放资源

file.close()

读取文件中所有的文本内容,如果我们前面使用了read或者readline,该方法就会接着读取后面的内容,前面的内容就不会再读取了哦,小伙伴注意了。上面也给出了另种方法打印哦小伙伴自己尝试一下。

小北这边给出for循环打印的结果图哦:

注:记得使用变量去接收打开文本方法的,都需要加上变量.close(),打开文件后关闭文件,释放内存资源

我们看看txt文本中的写、追加以及读写操作,小伙伴一定要一个个自己动手尝试!!!

w,a的属性

对于不存在的文件自动会创建一个

mini = open(‘china_name’,‘w’,encoding=‘utf-8’)

mini.write(‘你好,python’)#写入后会自动保存

如果你再次以w的放方式写入,之前的内容就会被刷新掉,显示当前的内容,是一种覆盖写,覆盖掉原来的内容

mini.write(‘你好,Java’)

追加写

mini = open(‘china_name1’,‘a’,encoding=‘utf-8’)

mini.write(‘你好,python’)#写入后会自动保存

mini.write(‘我来了’)

mini.close()

读写操作,先读后写,写入了之后是在文本的最后面,不读直接写是会写在文本的最前面

mini = open(‘china_name1’,‘r+’,encoding=‘UTF-8’)

a = mini.read()

print(a)

#换行,使用换行符可以输入多行文字

mini.write(‘\n每个人身上都有毛毛’)

mini.close()

这里,小北一下子介绍了三种方式,小伙伴可要看明白了,其中的操作,小伙伴一定要自己尝试,不然是体会不了的哦。

小北的这个效果图是执行了两遍的效果图哦,在这里的小北需要说明的一点就是,其实追加写跟写入区别只有一点,自己尝试过的小伙伴肯定就一下子明白了,追加写不管有么有内容,都可以一直在文本的后面继续写入内容,write写入呢,会把原来写入的内容覆盖掉。

小北介绍一种不需要写close的打开文本方法哦

with open(‘路径’,'模式) as 变量名:

代码块
  • 1

with open(‘china_name1’,‘r+’,encoding=‘UTF-8’) as reading:

读取行数

read_open = reading.readline()

只打印一行

print(read_open)

rd_ing = reading.write(‘本次课程’) write不支持写了就输出

print(rd_ing)

for red in reading:

print(red)

看这个格式,这里呢,我注释了一个打印方法,因为不支持这样的写法,虽然可以输出,但是是错误内容哦,不是想要的内容,所以这里我们使用了for循环的方法进行输出。

接下来的才是正题菜,易理解!!!

小北现在这说一下excel的几种格式,然后大多数以代码格式分享,加上注释,帮助小伙伴快速理解其中

常用的库,xlrd(read),xlwt(write),openpyxl(支持读写修改,但是不支持xls格式的excel文档,支持新版本的xlsx)

至于导入包这个操作,我想应该不需要我多说了吧,实在不会的直接在pycharm里面import 包名,指定红色部分直接下载就好。

import xlwt

import xlrd

import openpyxl

import yaml

3、xlrd及xlwt

===========

1. xlrd - 读取 Excel 文件,支持.xls和.xlsx格式

2. xlwt - 写入 Excel 文件,只支持.xls格式

3. openpyxl - 既可以读文件、也可以写文件、也可以修改文件;但是,openpyxl 库不支 持 xls 格式的Excel文档,如果要读写xls格式的文档,可以使用 Excel 进行相应的格式转 化,或者使用xlwt库来进行写的操作。

3.1、写入操作

我们先来看看xlrd格式的以及xlwt格式的,这两个一个是读,一个是写,我们在操作的时候可以一起使用的哦,首先我们看看写入的操作:

实例化类,建立好表单,创建文件名为exl1

exl1 = xlwt.Workbook()

在表中创建一个表单,并修改表单的名字,给定一个变量为sh1

sh1 = exl1.add_sheet(‘userinfo’)

写入数据,默认坐标位置是(0,0),A列表第一行第一列坐标为(0,0),B列表为第二行,我想在第一列输出那么就是(0,1)

sh1.write(0, 0, ‘username’)

sh1.write(0, 1, ‘password’)

保存这个文件到指定位置,默认位置也是可以的,保存在项目中

exl1.save(‘D:\python练习\log.xls’)

我在这里首先自己创建了一个excel文件哦,在这里呢,我们需要解释一下了xls是老版本的excel,xlsx是新版本的,所以注意文件后缀明哦,读取操作这个实例化对象的操作都是支持的。上述是读取文件信息,读取后发现什么也没有,接下来我们就是要写入点东西了。

看图小伙伴就懂了吧,以username为坐标(0,0),往下就是(1,0)以此类推,password坐标为(0,1)往下就是(1,1)依次类推写入

不想每次手动写入,我们就用循环来写吧。

实例化类,建立好表单,创建文件名为exl1

exl1 = xlwt.Workbook()

# 在表中创建一个表单,并修改表单的名字,给定一个变量为sh1

sh1 = exl1.add_sheet(‘userinfo’)

# 写入数据,默认坐标位置是(0,0),A列表第一行第一列坐标为(0,0),B列表为第二行,我想在第一列输出那么就是(0,1)

sh1.write(0, 0, ‘username’)

sh1.write(0, 1, ‘password’)

#定义一个列表

write_two = [‘zhangsan’,‘123456’]

#使用for循环介入,这里len()是计算长度,因为range里面不能接入列表,所以需要用len返回长度给到range,并使用索引值来取值

for i in range(len(write_two)):

#第一行,第i个值,这里有0跟1,然后再写入第i个位置的字符串

sh1.write(1,i,write_two[i])

保存excel表格,到指定的位置

exl1.save(‘D:\python练习\log.xls’)

可能有些小伙伴对这个sh1.write(1,i,write_two[i])抱有很大的一问,=_=

1为我们默认的第一行,i为我们所需要的位置信息,从第0列开始填充,write_two[i],这个就是列表取值了,索引值哦,所以打xls里面就是(1,0)位置写列表中的zhangsan,以此来的哦。

3.2、读取操作

#读取操作,读写可以一起的

read_fail = xlrd.open_workbook(‘D:\python练习\log.xls’)

#读取表单操作

us1 = read_fail.sheet_by_name(‘userinfo’) #表单名字读取

us1 = read_fail.sheet_by_index(0) #表单索引读取,第一个表单为0以此类推

读取属性信息,总行数总列数

print(us1.nrows) #行

print(us1.ncols) #列

print(us1.name) #表单名字

这里我们介绍了读取属性信息以及两种表单名字读取,其实第一种更偏向于核实表单是否是这个名字哦!

另外再介绍一下读取表单的一些方法:

读取一行 row1 = sh1.row_values(0)

读取一列 col1 = sh1.col_values(0)

读取一个单元格 cell1 = sh1.cell_value(0,0)或者cell1 = sh1.cell(0,1).value

单元格信息读取,坐标形式读取

a1 = sh1.cell_value(0,0)

#a1 = sh1.cell(0,1).value

print(a1)

#读取一行,以列表的形式打印,索引的形式读取

row_1 = sh1.row_values(1)

print(row_1)

#读取一列,索引值的方式进行读取

cell1 = sh1.col_values(1)

print(cell1)

这里是跟上面的读取例子其实是一体的,小北将他们拆分了而已。

小北这里贴了两张图,以便于小伙伴理解哦!!!

4、openpylx

==============

它的操作方式与上面两种还是有所不同的,使用的方法及操作都会有所不同,首先准备一个文件哦,写入一些数据

1、打开一个文件(.xlsx文件) book = openpyxl.load_workbook(文件名)

2、使用sheet工作表 sh1 = book.get_sheet_by_name(‘Sheet1’) 或者sh1=book.active

3、单元格写入 sh1[‘C2’] = ‘张三’ 或者 sh1.cell(1,3).value= ‘lisi’ 行和列的索引值是从1开始的

4、整行写入[‘张三’,‘李四’,‘wangwu’,‘王五’]

ex1 = openpyxl.load_workbook(r’D:\python练习\api.xlsx’)

num1 = ex1.get_sheet_by_name(‘Sheet1’)

这个是默认打开第一个表单

ex1.active

print(num1.max_row) # 总行数

print(num1.max_column) # 总列数

# 写入pass,fail

num1[‘F2’] = ‘PASS’

用坐标的位置写入

num1.cell(2,6).value = ‘PASS’

num1[‘F3’] = ‘FAIL’

num1.cell(3,6).value = ‘PASS’

这里我们 先使用指定的方法读取这个文件,然后写入两个PASS字符串

写入整行的数据,openpylx会自动更具excel表格进行数据写入

new1 = [‘张三’,‘李四’,‘wangwu’,‘王五’]

num1.append(new1)

#保存

ex1.save(r’D:\python练习\api.xlsx’)

然后我们定义一个列表,使用列表的方法将列表里面的值添加进小北的这个文件,这里openpylx有一个很不错的功能就是会自动更具excel表格的形式,使用列表里的值进行填充写入哦。

最后呈现这样的啦,这里小北是随意输入的数据哦。

接下来我们看看读取的操作

1:打开一个文件(.xlsx文件) book = openpyxl.load_workbook(文件名)

2:使用sheet工作表 sh1 = book.get_sheet_by_name(‘Sheet1’) 或者sh1=book.active

3:读取内容 按单元格读取 cell1 = sh1[‘A1’].value 或者 cell2= sh1.cell(1,2).value 行和列的索引值是从1开始的 按行读取 for row in sheet.iter_rows(min_row=1,max_row=3): for cell in row: print(cell.value,end= ‘\t’) print()

按列读取 for row in sheet.iter_rows(min_col=1,max_col=3): for cell in row: print(cell.value,end= ‘\t’) print()

#读的操作

look = openpyxl.load_workbook(r’D:\python练习\api.xlsx’)

sh1 = look.active

按单元格读取

A1 = sh1[‘A1’].value

print(A1)

如果没有value属性,读取的就只是单元格

用坐标的方式读取第一行第二列

A1 = sh1.cell(1,2).value

print(A1)

这里读取的时候坐标原始值就是(1,1)开始了哦。不是(0,0)了。这个操作也是上面的同一个文件哦

看下面这个循环操作:

使用for循环配合max_row直接拿取前几行内容,可以结合max_col= ,min_col= 使用,限制行跟列打印

for i in sh1.iter_rows(max_row=1):

for r in i:

print(r.value)

这里我们看到新的东西max_row=1,这个是最大行数为1的意思,max_col= 最大列数,min_col=最小列数,min_row = 最行数,可以通过这样的配合,来限制打印内容哦。

文末有福利领取哦~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/837696
推荐阅读
相关标签