赞
踩
用法其实先类似,没有太大的差别,小伙伴记得机器创建一个文本跟着操作一下
想要读取全文,不想一直read_num = file.readline()下去,我们可以使用for循环!
file = open(r"text_make")
for read_num in range(10):
print(file.readline())
file.close()
这里的range(10)是行数哦,当文本内容不足十行,循环就停止了
file = open(r"text_make") # 记得加上,encoding=‘utf-8’
read_num1 = file.readlines()
#想要不以列表的形式输出,就使用for循环遍历吧
print(read_num1)
file.close()
读取文件中所有的文本内容,如果我们前面使用了read或者readline,该方法就会接着读取后面的内容,前面的内容就不会再读取了哦,小伙伴注意了。上面也给出了另种方法打印哦小伙伴自己尝试一下。
小北这边给出for循环打印的结果图哦:
注:记得使用变量去接收打开文本方法的,都需要加上变量.close(),打开文件后关闭文件,释放内存资源
我们看看txt文本中的写、追加以及读写操作,小伙伴一定要一个个自己动手尝试!!!
mini = open(‘china_name’,‘w’,encoding=‘utf-8’)
mini.write(‘你好,python’)#写入后会自动保存
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)
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库来进行写的操作。
我们先来看看xlrd格式的以及xlwt格式的,这两个一个是读,一个是写,我们在操作的时候可以一起使用的哦,首先我们看看写入的操作:
exl1 = xlwt.Workbook()
sh1 = exl1.add_sheet(‘userinfo’)
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 = xlwt.Workbook()
sh1 = exl1.add_sheet(‘userinfo’)
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])
exl1.save(‘D:\python练习\log.xls’)
可能有些小伙伴对这个sh1.write(1,i,write_two[i])抱有很大的一问,=_=
1为我们默认的第一行,i为我们所需要的位置信息,从第0列开始填充,write_two[i],这个就是列表取值了,索引值哦,所以打xls里面就是(1,0)位置写列表中的zhangsan,以此来的哦。
#读取操作,读写可以一起的
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’)
print(num1.max_row) # 总行数
print(num1.max_column) # 总列数
num1.cell(2,6).value = ‘PASS’
num1.cell(3,6).value = ‘PASS’
这里我们 先使用指定的方法读取这个文件,然后写入两个PASS字符串
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)
A1 = sh1.cell(1,2).value
print(A1)
这里读取的时候坐标原始值就是(1,1)开始了哦。不是(0,0)了。这个操作也是上面的同一个文件哦
看下面这个循环操作:
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 = 最行数,可以通过这样的配合,来限制打印内容哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。