Python 使用Robot Framework读取CSV文件并从第n列中查找值
请帮我找到你的答案 使用Robot Framework读取CSV文件并从第n列中查找值 我不想使用excel库 我有一个csv文件,有5列和10000行 想要使用robot framework从第3列和7000行中查找值,我将如何直接查找值 我在下面进行了尝试,获得了一些价值,但循环执行了n次,这很耗时,可能会造成性能问题Python 使用Robot Framework读取CSV文件并从第n列中查找值,python,csv,robotframework,robotframework-ide,Python,Csv,Robotframework,Robotframework Ide,请帮我找到你的答案 使用Robot Framework读取CSV文件并从第n列中查找值 我不想使用excel库 我有一个csv文件,有5列和10000行 想要使用robot framework从第3列和7000行中查找值,我将如何直接查找值 我在下面进行了尝试,获得了一些价值,但循环执行了n次,这很耗时,可能会造成性能问题 ${value1} Create List ${FILE_CONTENT} Get File C:\\abcd1.csv
${value1} Create List
${FILE_CONTENT} Get File C:\\abcd1.csv
Log File Content: ${FILE_CONTENT}
@{LINES} Split to Lines ${FILE_CONTENT}
Remove From List ${LINES} 0
:FOR ${LINE} IN @{LINES}
Log ${LINE}
@{ROWS} Split String ${LINE} separator=,
${VALUE} Get From List ${ROWS} 2
Log ${VALUE}
${value2} Convert To String ${VALUE}
Run Keyword If ${value2} == 1400000 Exit For Loop
Append To List ${value1} ${value2}
Log ${value1}
首先,我试着按照我给你的建议使用内置库 github.com/s4int/robotframework-CSVLibrary 我遇到了一些错误,这可能是因为我的data.csv的格式,但并没有足够的时间来调试它 我用python为您的解决方案创建了一个自定义库,您可以在工作中使用它 data.csv
Name,Age,region,country,Marks
pankaj,22,delhi,india,45
neeraj,32,noida,india,75
python代码使用csv模块解析此数据,并返回第n行和第n列的值
import csv
#Previous function to go to nth row and nth column
def go_to_nth_row_nth_column(File,row_no,col_no):
inputFile = File
row_no=int(row_no)
col_no=int(col_no)
with open(inputFile) as ip:
reader = csv.reader(ip)
for i, row in enumerate(reader):
if i == row_no: # here's the row
#print row[col_no] # here's the column
return row[col_no]
#Function to find the string values, in case of duplicate occurrence as well
def search_cell(File,search_string):
inputFile = File
search_position=[] #empty list which will later store row,column occurences
with open(inputFile) as ip:
reader = csv.reader(ip)
for i, row in enumerate(reader):
for j, column in enumerate(row):
if search_string in column: # here's the row
#print((i,j))
search_position.append((i,j)) #this will create list of list i.e. list of row,columns in case of multi occurences
#return (i,j)
return search_position
您可以在robot文件中将其用作库,如下所示
*** Settings ***
Library csv2.py
*** Test Cases ***
Test
Check row column
Search String
*** Keywords ***
Check row column
${result} = go_to_nth_row_nth_column data.csv 2 1
log ${result}
Search String
${result1}= search_cell data.csv india
log ${result1}
我得到的答案是唯一的
['40','第二项','300']
我希望@pankaj建议的两个包含300个的列都使用带有以下代码的库。此代码查找变量
${value_to_find}
,如果找到,则返回,否则继续循环并记录消息。如果要在单个列中查找变量,可以自定义验证变量
关键字范围/循环
示例机器人
*** Settings ***
Library Collections
Library CSVLibrary
*** Variables ***
${value_to_find} Morris
*** Test Cases ***
mytest
Read file and verify
*** Keywords ***
Read file and verify
@{list}= read csv file to list data.csv
:FOR ${x} IN @{list}
\ Log ${x}
\ Set test variable ${x}
\ verify variable
\ Run keyword if ${status} Log to console variable was found!
\ Exit For Loop If ${status}
Run keyword if not ${status} Log to console variable was not found!
verify variable
${length}= Get Length ${x}
: FOR ${j} IN RANGE 0 ${length}
\ Log ${x[${j}]}
\ ${status}= Evaluate '${x[${j}]}' == '${value_to_find}'
\ Log ${status}
\ set test variable ${status}
\ Exit For Loop If ${status}
data.csv
id,first_name,last_name,email,gender,ip_address
1,Douglas,Morris,dmorris0@mozilla.org,Male,205.4.212.229
2,Stephanie,Oliver,soliver1@google.com.br,Female,18.101.154.106
3,Russell,Castillo,rcastillo2@shop-pro.jp,Male,255.52.95.46
4,Helen,Reed,hreed3@rambler.ru,Female,167.55.67.109
5,Jesse,Wagner,jwagner4@histats.com,Male,252.37.62.215
6,Ashley,Diaz,adiaz5@wikia.com,Female,79.87.105.139
7,Rachel,Robinson,rrobinson6@blogger.com,Female,132.66.117.101
8,Phillip,Johnston,pjohnston7@disqus.com,Male,70.152.55.21
9,Craig,Burton,cburton8@toplist.cz,Male,73.117.157.82
10,Patrick,Fisher,pfisher9@1und1.de,Male,2.36.191.97
将代码添加到你的问题中并正确设置格式。你能将代码复制并粘贴到问题本身中吗understand@pankajmishra是否请检查您是否检查了RF@pankajmishra中的CSV库,但我如何从第n个单元格中找到值这太棒了,但我试图验证该值,比如说我有值“abc”在一个变量和csv中,某些列中存在相同的值,我想通过查看csv来验证我将如何找到该值。例如:当我们执行ctrl+F并从列中找到我要应用的逻辑值时,请帮助请再次查看我的示例,首先理解它,然后试着按照你的要求实现一些逻辑用合适的fromatting发布你的代码,这很难理解发布的请检查和帮助您的回答帮助,因为我对编码和构建逻辑不熟悉,请再向您请求一件事,请帮助我想搜索固定列中的值,即我将直接提供的列num,并想搜索字符串、数字,我如何获得该值请帮助thanks@pankaj米什拉,请检查以上我得到的,但如果我想要两者,那么该怎么办谢谢
id,first_name,last_name,email,gender,ip_address
1,Douglas,Morris,dmorris0@mozilla.org,Male,205.4.212.229
2,Stephanie,Oliver,soliver1@google.com.br,Female,18.101.154.106
3,Russell,Castillo,rcastillo2@shop-pro.jp,Male,255.52.95.46
4,Helen,Reed,hreed3@rambler.ru,Female,167.55.67.109
5,Jesse,Wagner,jwagner4@histats.com,Male,252.37.62.215
6,Ashley,Diaz,adiaz5@wikia.com,Female,79.87.105.139
7,Rachel,Robinson,rrobinson6@blogger.com,Female,132.66.117.101
8,Phillip,Johnston,pjohnston7@disqus.com,Male,70.152.55.21
9,Craig,Burton,cburton8@toplist.cz,Male,73.117.157.82
10,Patrick,Fisher,pfisher9@1und1.de,Male,2.36.191.97