0
回答
想学python爬网站?学之前该知道这个
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

python自动化测试应用-番外篇—文件读取

 

1.1概要

今天我们的《python自动化测试应用-番外篇》将会带大家学习如何利用python对文件进行读取操作。在平时的测试中,很多情况都会遇到需要对文件进行读取并对数据做校验。如在自动化测试框架设计中,可以利用txt文档或是excel文档做数据的存储,或者是利用存储在文件中的数据做参数化执行数据。所以在大家做软件的自动化测试时,也要掌握python是如何操作文件读取和写入的。

1.2 python实战txt文档的读写

对txt文档的读写稍微简单一些,如我在桌面保存一个“test.txt”,文中保存内容如图所示想学python爬网站?学之前该知道这个

 

1.2.1我们对txt中的内容读取,脚本如下:

#-*- coding:utf-8 -*-

import os

file1=open(os.path.dirname(__file__)+'\\test.txt','r')

#open打开,第一个参数传递文件的路径,第二个参数‘r’表示读操作,‘w’表示写操作

content=file1.readline()

#首先通过readline()读取第一行并赋值给content

print content.decode('gbk')

#打印出来

while content:

content =file1.readline()

print content.decode('gbk')

#循环读取文本内容,当content为空跳出循环

file1.close()

#关闭文件

效果如下图所示

想学python爬网站?学之前该知道这个

1.2.2写入txt文本,脚本如下:

file1=open(os.path.dirname(__file__)+'\\test.txt','w')

#open打开,第一个参数传递文件的路径,第二个参数‘r’表示读操作,‘w’表示写操作

file1.write(u'我是一个文本1\n'.encode('gb2312'))

file1.write(u'我是一个文本2\n'.encode('gb2312'))

#write写入内容

file1.close()

#关闭文件想学python爬网站?学之前该知道这个

 

效果如上图,这里需要注意,在写入文本时换行时结尾带上“\n”换行符。

1.3 python实战excel文档的读写

在做excel表格的读写时,我们需要导入xlrd和xlwt两个包模块

import xlrd #读取

import xlwt #写入

1.3.1 excel的写入操作

#-*- coding:utf-8 -*-

import os

import xlrd

import xlwt

wb=xlwt.Workbook()

#创建workbook对象

sh=wb.add_sheet('sheet1')

#创建sheet

sh.write(0,0,u'1百度')

#向第一行第一列的cell写入文本内容

wb.save(os.path.dirname(__file__)+'\\test.xls')

#保存excel文件

这个只是简单的示例,实际工作中需要你读入其他来源的数据并写入到excel表中,那么我们借鉴刚才的txt文档的内容,将txt文档的三行内容分别写入到excel表格中,看看代码是怎么实现的。

#-*- coding:utf-8 -*-

import os

import xlrd

import xlwt

wb=xlwt.Workbook()

sh=wb.add_sheet('sheet1')

#sh.write(0,0,u'1百度')

#wb.save(os.path.dirname(__file__)+'\\test.xls')

row=0

#行标识row

file1=open(os.path.dirname(__file__)+'\\test.txt','r')

#open打开,第一个参数传递文件的路径,第二个参数‘r’表示读操作,‘w’表示写操作

content=file1.readline().decode('gbk')

#首先通过readline()读取第一行并赋值给content

con= content.split('|')

col=len(con)

#len(con)得出列数

for i in range(col):

sh.write(row,i,con[i])

#循环写入到row行的不同列中

row+=1

#写完一行row加1

while content:

content =file1.readline().decode('gbk')

con= content.split('|')

col=len(con)

for i in range(col):

sh.write(row,i,con[i])

row+=1

#循环读取文本内容,并写入excel,当content为空跳出循环

file1.close()

wb.save(os.path.dirname(__file__)+'\\test.xls')

#关闭保存文件想学python爬网站?学之前该知道这个

 

上图显示写入txt文本内容成功。我们来看看写入的命令sh.write(row,clo,str),往excel表格中写入数据需要指定行(row)和列(clo)以及需要传入的内容str。如在表格的第一行第一列写入“test“,命令为sh.write(0,0,‘test’)。

1.3.1 excel的读取操作

读取excel用到xlrd模块,读取命令也很简单,我们主要看看在代码上如何实现我们刚才生成的'test.xls'表的内容。

#-*- coding:utf-8 -*-

import os

import xlrd

import xlwt

wb=xlrd.open_workbook(os.path.dirname(__file__)+'\\test.xls')

#打开excel

sh=wb.sheet_by_index(0)

#通过wb对象定位第一个sheet页

c=0

r=0

#初始化列和行

while 1:

try:

v=sh.cell(r,c).value

print v

c+=1

#循环打印每一行的内容,直到内容为空

except Exception,e:

if c==0:

break

#当每行的第一列为空时,退出循环

r+=1

c=0

#为空后切换到下一行并将列计数归0

想学python爬网站?学之前该知道这个

大家通过代码可以看出来读取excel表的内容的方法很简单就是用sh.cell(r,c).value,复杂的地方就是如何在代码上实现对具体的表格数据进行全部读取操作。我们在这里主要讲解一下思路,通过while循环读取每行数据,当报错后我们切换到下一行再进行读取,如此循环。当下一行的第一列为空时表示我们的表格数据就读取完了,所以这时我们就退出循环结束读取操作。

通过本篇的学习,大家应该对文件的读取有了大概的认识了吧,实现的方法都很简单易懂,难的地方是用编程的思路去获取到数据,这里就要大家在python语言上多学习,加强练习。感谢大家耐心看完本篇

<无标签>
举报
铁扇公主1
发帖于8个月前 0回/106阅
顶部