我正在解析excel文件[session_data,csv],excel文件如下所示:
Case, StartTime, EndTime
Case_1=Covering 3 time-slots,T00:00:00,T05:00:00
Case_2=Covering multiple time-slots,T00:15:00
Case_3=Covering one time-slot,T00:18:00,T00:47:00
我正在解析文件如下:
${LIST}= Process Data File ${CURDIR}/session_data.csv
: FOR ${LINE} IN @{LIST}
\ Log ${LINE}
\ @{COLUMNS}= Split String ${LINE} separator=,
\ ${TESTCASE}= Get From List ${COLUMNS} 0
\ ${STARTTIME}= Get From List ${COLUMNS} 1
\ ${ENDTIME}= Get From List ${COLUMNS} 2
现在我不需要为每个案例运行循环,但仅针对我的行(案例列)以“Case_2”或“Case_3”开头的单个案例
如何添加该条件?
答案 0 :(得分:0)
你可以通过两种方式实现这一目标;第一个是过滤Process Data File
关键字中的记录,这超出了此问题的范围。
另一种方法是强制FOR
循环继续 - 例如在某种情况下不再执行任何陈述。这是通过使用关键字this project并提供条件来完成的 - 在这种情况下,拆分的第一个结果是以该字符串开头。
: FOR ${LINE} IN @{LIST}
\ Log ${LINE}
\ @{COLUMNS}= Split String ${LINE} separator=,
\ ${TESTCASE}= Get From List ${COLUMNS} 0
\ Continue For Loop If not("""${TESTCASE}""".startswith("Case_2") or """${TESTCASE}""".startswith("Case_3"))
# the following lines will be ran only if the ${TESTCASE} value starts with any of those strings
\ ${STARTTIME}= Get From List ${COLUMNS} 1
\ ${ENDTIME}= Get From List ${COLUMNS}
# the rest of your processing logic
条件not("""${TESTCASE}""".startswith("Case_2") or """${TESTCASE}""".startswith("Case_3"))
是一个普通的python表达式,"""
是一个“字符串文字” - 因此如果实际值引用了换行符,它就不会破坏表达式。
答案 1 :(得分:0)
这是一个简单的修复,我使用了Robot库'String'中的关键字“Get Lines Containing String”并删除了“For Loop”。要获取特定行,我使用下面的代码:
${LIST}= Process Data File ${CURDIR}/pricing.csv
${LINE}= Get Lines Containing String ${LIST} ${case}
Log ${LINE}
@{COLUMNS}= Split String ${LINE} separator=,
${TESTCASE}= Get From List ${COLUMNS} 0
${STARTTIME}= Get From List ${COLUMNS} 1
${ENDTIME}= Get From List ${COLUMNS} 2