【问题标题】:How to append data to csv file in Robot Framework?如何在 Robot Framework 中将数据附加到 csv 文件?
【发布时间】: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 的回答。

标签: python csv selenium automated-tests robotframework


【解决方案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”可以解决。
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2019-08-17
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2019-03-02
    相关资源
    最近更新 更多