如何在 Robot Framework 中将数据附加到 csv 文件?
Posted
技术标签:
【中文标题】如何在 Robot Framework 中将数据附加到 csv 文件?【英文标题】:How to append data to csv file in Robot Framework? 【发布时间】:2017-12-21 14:21:36 【问题描述】:我想将数据附加到现在在 Robot Framework 中不为空的 .csv 文件中,但我遇到了一些问题。
我从 github 中的“robotframework-CSVLibrary”的“s4int”安装了 CSVLibrary,它有一个名为“Append To Csv File”的关键字。我可以将数据附加到 .csv 文件中,但格式存在一些问题。
首先我有一个空的 csv 文件,然后在 Robot Framework 中运行我的脚本。
*** Settings ***
Library Selenium2Library
Library CSVLibrary
*** Variables ***
*** Test Cases ***
test
$list= Create List apple pear
Append To Csv File $file_path $list
文件如下所示:
但我期望的是:
!
如何附加数据以显示我所期望的?我的格式错了吗?或者还有其他方法可以实现吗? 非常感谢。
【问题讨论】:
使用Append To Csv File $file_path @list
的结果是什么?
对我来说,它看起来像一个错误。
谢谢你们。它适用于 Bryan 的回答。
【参考方案1】:
如果您需要先清除文件,然后再向其中写入其他数据,那么您可以为您的机器人框架脚本使用以下关键字。
您可以直接使用代码并创建一个名为CSVLibrary.py
的库并开始使用它。然后你可以将它调用到你的脚本中。提供带有\\
斜杠的文件路径以在机器人框架中工作。例如:E:\\FOLDER1\\FOLDER2
。您可以像提供$list=Create List apple pear
一样提供数据。
import csv
class CSVLibrary():
def Clear_file(self, filepath): # Clear_file :it will clear your file.
with open(filepath, 'w+') as f:
obj1=csv.writer(f)
def Append_file(self, filepath, data): # Append_file :it will append the data you wanted to in your script.
with open(filepath, 'a') as f:
obj1=csv.writer(f)
obj1.writerow(data)
【讨论】:
【参考方案2】:对于您正在使用的库,Append to csv file
似乎需要一个列表列表。每个列表代表一行,每个子列表代表该行中的列。
由于您希望“apple”和“pear”位于同一行,因此您需要将它们放在一个列表中,然后将该列表放入另一个列表中。
*** Test Cases ***
test
$list= Create List apple pear
$data= create list $list
Append To Csv File $file_path $data
【讨论】:
我发现使用“$list= Create List\apple pear”可以解决。以上是关于如何在 Robot Framework 中将数据附加到 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章
在 If / Else 语句中将文本存储到标量中 - Robot Framework
如何在临时 sql server 上使用带有 Robot Framework 的数据库库
在 Robot framework 数据驱动方法中生成测试用例