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

时间:2016-01-20 15:53:15

标签: robotframework

我在当前的工作目录中复制了一个文件。该文件有一个文本:

  

订单价值= 78

我想用新的

替换此文本
  

宗地值= 500

我该怎么做?

4 个答案:

答案 0 :(得分:5)

使用OperatingSystem Library中的Get File,您可以阅读文件的内容,
并使用String Library中的Replace String替换字符串和 使用OperatingSystem库中的Create File,您可以创建文件。

答案 1 :(得分:0)

如果要替换的文件很大并且您不想在变量中加载整个文件内容,那么您可以使用OperatingSystem Library中的Run关键字。关键字将执行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命令后得到的标准输出。

答案 2 :(得分:0)

我正在使用python脚本。将下面的代码放在.py文件中,然后使用设置部分中的Library将其加载到机器人文件中。 在机器人文件中接下来使用此关键字:

替换文件中的行|档案| searchExp1 | replaceLine

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)

答案 3 :(得分:0)

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

还需要进行哪些其他更改。