我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

python读取表格函数 python怎么读取表格中的一个数据

python读取excel之xlrd

Excel中的日期转换

创新互联服务项目包括资源网站建设、资源网站制作、资源网页制作以及资源网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,资源网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到资源省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

此时需要调用xlrd的xldate_as_tuple模块或者xldate_as_datetime模块

xldate_as_tuble(date,mode),此函数有两个参数,第一个参数是excel的小数日期,xldate_as_tuple第二个参数有两种取值,0或者1,0是以1900-01-01为基准的日期,而1是1904-01-01为基准的日期。该函数返回的是一个元组,他的值类似:(year, month, day, hour, minute, nearest_second)

python怎么从excel中读取数据?

#导入包

import xlrd

#设置路径

path='C:\\Users\\jyjh\\Desktop\\datap.xlsx'

#打开文件

data=xlrd.open_workbook(path)

#查询工作表

sheets=data.sheets()

sheets

可以通过函数、索引、名称获得工作表。

sheet_1_by_function=data.sheets()[0]

sheet_1_by_index=data.sheet_by_index(0)

sheet_1_by_name=data.sheet_by_name(u'Sheet1')

可以通过方法获得某一列或者某一行的数值。

sheet_1_by_name.row_values(1)

sheet_1_by_name.col_values(1)

通过工作表的属性获得行数和列数。

n_of_rows=sheet_1_by_name.nrows

n_of_cols=sheet_1_by_name.ncols

也可以用一个循环来遍历一次文件。

for i in range(n_of_rows):

print sheet_1_by_name.row_values(i)

可以通过以下的任意一种方式访问单元格的数值。

cell_A1=sheet_1_by_name.cell(0,0).value

cell_A1=sheet_1_by_name.row(0)[0].value

cell_A1=sheet_1_by_name.col(0)[0].value

最后通过以下的方法对单元格的数值进行修改。

row=0

col=0

#ctype 0:empty,1:string,2:number,3:date,4:boolean,5:error

cell_type=1

value='Hello,Excel'

cell_A1=sheet_1_by_name.cell(0,0).value

format=0

sheet_1_by_name.put_cell(row,col,cell_type,value,format)

cell_A1=sheet_1_by_name.cell(0,0).value

Python[1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。

python读取Excel实现接口自动化并生成测试报告

#读取多条测试用例

#1、导入requests模块

importrequests

#从 class_12_19.do_excel1导入read_data函数

fromdo_excel2 importread_data

fromdo_excel2 importwrite_data

fromdo_excel2 importcount_case

#定义http请求函数

COOKIE=None

defhttp_request2(method,url,data):

ifmethod=='get':

print('发起一个get请求')

result=requests.get(url,data,cookies=COOKIE)

else:

print('发起一个post请求')

result=requests.post(url,data,cookies=COOKIE)

returnresult #返回响应体

# return result.json() #返回响应结果:结果是字典类型:{'status': 1, 'code': '10001', 'data': None, 'msg': '登录成功'}

#从Excel读取到多条测试数据

sheets=['login','recharge','withdraw']

forsheet1 insheets:

max_row=count_case(sheet1)

print(max_row)

forcase_id inrange(1,max_row):

data=read_data(sheet1,case_id)

print('读取到第{}条测试用例:'.format(data[0]))

print('测试数据 ',data)

#print(type(data[2]))

#调用函数发起http请求

result=http_request2(data[4],data[2],eval(data[3]))

print('响应结果为 ',result.json())

ifresult.cookies:

COOKIE=result.cookies

#将测试实际结果写入excel

#write_data(case_id+1,6,result['code'])

write_data(sheet1,case_id+1,7,str(result.json()))

#对比测试结果和期望结果

ifresult.json()['code']==str(data[5]):

print('测试通过')

#将用例执行结果写入Excel

write_data(sheet1,case_id+1,8,'Pass')

else:

write_data(sheet1,case_id+1,8,'Fail')

print('测试失败')

# 导入load_workbook

fromopenpyxl importload_workbook

#读取测试数据

#将excel中每一条测试用例读取到一个列表中

#读取一条测试用例——写到一个函数中

defread_data(sheet_name,case_id):

# 打开excel

workbook1=load_workbook('test_case2.xlsx')

# 定位表单(test_data)

sheet1=workbook1[sheet_name]

print(sheet1)

test_case=[] #用来存储每一行数据,也就是一条测试用例

test_case.append(sheet1.cell(case_id+1,1).value)

test_case.append(sheet1.cell(case_id+1,2).value)

test_case.append(sheet1.cell(case_id+1,3).value)

test_case.append(sheet1.cell(case_id+1,4).value)

test_case.append(sheet1.cell(case_id+1,5).value)

test_case.append(sheet1.cell(case_id+1,6).value)

returntest_case #将读取到的用例返回

#调用函数读取第1条测试用例,并将返回结果保存在data中

# data=read_data(1)

# print(data)

#将测试结果写会excel

defwrite_data(sheet_name,row,col,value):

workbook1=load_workbook('test_case2.xlsx')

sheet=workbook1[sheet_name]

sheet.cell(row,col).value=value

workbook1.save('test_case2.xlsx')

#统计测试用例的行数

defcount_case(sheet_name):

workbook1=load_workbook('test_case2.xlsx')

sheet=workbook1[sheet_name]

max_row=sheet.max_row #统计测试用例的行数

returnmax_row

importcsv # 导入scv库,可以读取csv文件

fromselenium importwebdriver

importunittest

fromtime importsleep

importtime

importos

importHTMLTestRunner

importcodecs

importsys

dr =webdriver.Chrome()

classtestLo(unittest.TestCase):

defsetUp(self):

pass

deftest_login(self):

'''登陆测试'''

path ='F:\\Python_test\\'

# 要读取的scv文件路径

my_file ='F:\\pythonproject\\interfaceTest\\testFile\\ss.csv'

# csv.reader()读取csv文件,

# Python3.X用open,Python2.X用file,'r'为读取

# open(file,'r')中'r'为读取权限,w为写入,还有rb,wd等涉及到编码的读写属性

#data = csv.reader(codecs.open(my_file, 'r', encoding='UTF-8',errors= 'ignore'))

with codecs.open(my_file, 'r', encoding='UTF-8',errors='ignore') as f:

data=csv.reader((line.replace('\x00','') forline inf))

# for循环将读取到的csv文件的内容一行行循环,这里定义了user变量(可自定义)

# user[0]表示csv文件的第一列,user[1]表示第二列,user[N]表示第N列

# for循环有个缺点,就是一旦遇到错误,循环就停止,所以用try,except保证循环执行完

print(my_file)

foruser indata:

print(user)

dr.get(' ')

# dr.find_element_by_id('input1').clear()

dr.find_element_by_id('input1').send_keys(user[0])

# dr.find_element_by_id('input2').clear()

dr.find_element_by_id('input2').send_keys(user[1])

dr.find_element_by_id('signin').click()

sleep(1)

print('\n'+'测试项:'+user[2])

dr.get_screenshot_as_file(path +user[3] +".jpg")

try:

assertdr.find_element_by_id(user[4]).text

try:

error_message =dr.find_element_by_id(user[4]).text

self.assertEqual(error_message, user[5])

print('提示信息正确!预期值与实际值一致:')

print('预期值:'+user[5])

print('实际值:'+error_message)

except:

print('提示信息错误!预期值与实际值不符:')

print('预期值:'+user[5])

print('实际值:'+error_message)

except:

print('提示信息类型错误,请确认元素名称是否正确!')

deftearDown(self):

dr.refresh()

# 关闭浏览器

dr.quit()

if__name__ =="__main__":

# 定义脚本标题,加u为了防止中文乱码

report_title =u'登陆模块测试报告'

# 定义脚本内容,加u为了防止中文乱码

desc =u'登陆模块测试报告详情:'

# 定义date为日期,time为时间

date =time.strftime("%Y%m%d")

time =time.strftime("%Y%m%d%H%M%S")

# 定义path为文件路径,目录级别,可根据实际情况自定义修改

path ='F:\\Python_test\\'+date +"\\login\\" + time + "\\"

# 定义报告文件路径和名字,路径为前面定义的path,名字为report(可自定义),格式为.html

report_path =path +"report.html"

# 判断是否定义的路径目录存在,不能存在则创建

ifnotos.path.exists(path):

os.makedirs(path)

else:

pass

# 定义一个测试容器

testsuite =unittest.TestSuite()

# 将测试用例添加到容器

testsuite.addTest(testLo("test_login"))

# 将运行结果保存到report,名字为定义的路径和文件名,运行脚本

report =open(report_path, 'wb')

#with open(report_path, 'wb') as report:

runner =HTMLTestRunner.HTMLTestRunner(stream=report, title=report_title, description=desc)

runner.run(testsuite)

# 关闭report,脚本结束

report.close()

csv文件格式:

备注:

使用python处理中文csv文件,并让execl正确显示中文(避免乱码)设施编码格式为:utf_8_sig,示例:

'''''

将结果导出到result.csv中,以UTF_8 with BOM编码(微软产品能正确识别UTF_8 with BOM存储的中文文件)存储

#data.to_csv('result_utf8_no_bom.csv',encoding='utf_8')#导出的结果不能别excel正确识别

data.to_csv('result_utf8_with_bom.csv',encoding='utf_8_sig')

Python和MATLAB读取excel指定行列数据的方法

1、用xlrd读取

对应方法如下,需要先import xlrd和numpy,通过row_start和row_end控制行数,通过column_start和column_end控制列数

这里要注意python是0-based索引,excel看的时候是1-based的索引

2、用pandas下的read_excel函数

dframe = pd.read_excel(“file_name.xlsx”)

dframe = pd.read_excel(“file_name.xlsx”, sheetname=”Sheet_name”)

dframe = pd.read_excel(“file_name.xlsx”, sheetname=number)

读取表格的方式有两种:

1、xlsread

[~,MeaDef,~]=xlsread(xls_site,table_tag,'B12:AI12');

这里输出是一个对应数字,一个对应字符串,一个是用元胞把所有数据放在一起

对应的xlswrite格式:

xlswrite(xls_site_output,train,1,['A',num2str(ix+1),':M',num2str(ix+1)])

2、read_table

python怎么从excel读取数据

VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为:

VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找)

下面以一个实例来介绍一下这四个参数的使用

例1:如下图所示,要求根据表二中的姓名,查找姓名所对应的年龄。

公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)

参数说明:

1 查找目标:就是你指定的查找的内容或单元格引用。本例中表二A列的姓名就是查找目标。我们要根据表二的“姓名”在表一中A列进行查找。

公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)

2 查找范围(VLOOKUP(A13,$B$2:$D$8,3,0) ):指定了查找目标,如果没有说从哪里查找,EXCEL肯定会很为难。所以下一步我们就要指定从哪个范围中进行查找。VLOOKUP的这第二个参数可以从一个单元格区域中查找,也可以从一个常量数组或内存数组中查找。本例中要从表一中进行查找,那么范围我们要怎么指定呢?这里也是极易出错的地方。大家一定要注意,给定的第二个参数查找范围要符合以下条件才不会出错:

A 查找目标一定要在该区域的第一列。本例中查找表二的姓名,那么姓名所对应的表一的姓名列,那么表一的姓名列(列)一定要是查找区域的第一列。象本例中,给定的区域要从第二列开始,即$B$2:$D$8,而不能是$A$2:$D$8。因为查找的“姓名”不在$A$2:$D$8区域的第一列。

B 该区域中一定要包含要返回值所在的列,本例中要返回的值是年龄。年龄列(表一的D列)一定要包括在这个范围内,即:$B$2:$D$8,如果写成$B$2:$C$8就是错的。

3 返回值的列数(B13 =VLOOKUP(A13,$B$2:$D$8,3,0))。这是VLOOKUP第3个参数。它是一个整数值。它怎么得来的呢。它是“返回值”在第二个参数给定的区域中的列数。本例中我们要返回的是“年龄”,它是第二个参数查找范围$B$2:$D$8的第3列。这里一定要注意,列数不是在工作表中的列数(不是第4列),而是在查找范围区域的第几列。如果本例中要是查找姓名所对应的性别,第3个参数的值应该设置为多少呢。答案是2。因为性别在$B$2:$D$8的第2列中。

4 精确OR模糊查找(VLOOKUP(A13,$B$2:$D$8,3,0) ),最后一个参数是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4个参数如果指定值是0或FALSE就表示精确查找,而值为1 或TRUE时则表示模糊。这里兰色提醒大家切记切记,在使用VLOOKUP时千万不要把这个参数给漏掉了,如果缺少这个参数默为值为模糊查找,我们就无法精确查找到结果了。

1、接下来,我们的任务是通过利用VLOOKUP函数来实现查找同学C的成绩。为此在单元格中输入“=VLOOKUP”,此时就会发现VLOOKUP包括三个参数和一个可选参数。

其中“lookup_value”是指要查找的值。

参数“table_array”是指搜索的区域,在此在除标题之后的整个数据区域。

第三个参数“col_index_num”是指整个函数返回单元格所在的列号。

2、最后以右括号结尾,并按回车键,就出现想要的结果啦。


分享文章:python读取表格函数 python怎么读取表格中的一个数据
转载来于:http://shouzuofang.com/article/hpoepo.html

其他资讯