如何用robotframework替换文件中的文本/字符串

如何用robotframework替换文件中的文本/字符串,robotframework,Robotframework,我已在当前工作目录中复制了一个文件。此文件包含一个文本: 订单值=78 我想用新的文本替换此文本 地块价值=500 如何执行此操作?使用操作系统库中的获取文件,您可以读取文件的内容, 使用字符串库中的Replace String,可以替换字符串和 使用OperatingSystem library中的创建文件可以创建文件。如果要在其中进行替换的文件很大,并且不想在变量中加载整个文件内容,则可以使用OperatingSystem library中的运行关键字。关键字将执行shell命令,此处为“s

我已在当前工作目录中复制了一个文件。此文件包含一个文本:

订单值=78

我想用新的文本替换此文本

地块价值=500


如何执行此操作?

使用操作系统库中的
获取文件
,您可以读取文件的内容,
使用字符串库中的
Replace String
,可以替换字符串和
使用OperatingSystem library中的
创建文件
可以创建文件。

如果要在其中进行替换的文件很大,并且不想在变量中加载整个文件内容,则可以使用OperatingSystem library中的
运行
关键字。关键字将执行shell命令,此处为“sed”,并进行替换。 (当然,在这种情况下,您应该使用Linux)

例如:

*** Settings ***
| Library | OperatingSystem

*** Test Cases ***
| Example of replacing the text in a file
| | ${result}= | Run | sed -i 's/foo/bar/g' myfile.txt

变量
result
将保存运行shell命令后获得的标准输出。

我正在为此使用python脚本。将下面的代码放入.py文件中,并使用设置部分中的库将其加载到robot文件中。 在robot文件中,下一步使用以下关键字:

替换文件|文件| searchExp1 |替换行中的行

def Replace_line_in_file(file,searchExp1,replaceLine):
    """ Open a file (like input.txt) and find the line that
        contains the string searchExp1.
        and replace that complete line by replaceLine.
        When there are multiple lines that contain searchExp1
        then all those lines will be replaced
    """
    for line in fileinput.input(file, inplace=1):
        if searchExp1 in line:
            line = replaceLine+'\n'
        sys.stdout.write(line)

我尝试使用上面的关键字“替换文件中的行”。 但是我在>忽略中得到了错误:Exception TypeError:TypeError(“'NoneType'对象不可调用”)


还需要做哪些修改。

这更适合作为评论,而不是回答,因为它不能回答问题。