搜索并替换一行中的单词,并在下一行打印结果

时间:2016-03-07 07:58:55

标签: python python-2.7

我有一个包含多行的这一行的脚本:

Wait(0.000005);

目标是使搜索/替换功能转换为以下格式:

//Wait(0.000005);

Wait(5);

第一部分评论"等待(0.000005);"已经完成了。 从第一行替换有困难。

有人可以赐教。谢谢。

3 个答案:

答案 0 :(得分:1)

这是使用sed在命令行进行替换的单行程序:

sed 's/Wait(0.000005);/ \/\/Wait(0.000005);\'$'\nWait(50);/' filename.py  

答案 1 :(得分:1)

import re
regex = re.compile(r"^.*Wait(0.000005);.*$", re.IGNORECASE)
for line in some_file:
    line = regex.sub("^.*Wait(0.000005);.*$","Wait(50);", line)

这可能是一种可能的解决方案

答案 2 :(得分:0)

正则表达式在这里非常方便:

import re                    

with open("example.txt") as infile:
    data = infile.readlines()

pattern = re.compile("Wait\(([0-9]+\.[0-9]*)\)")

for line in data:
    matches = pattern.match(line)
    if matches:
        value = float(matches.group(1))
        newLine = "//" + matches.group(0) + "\n\n"
        newLine += "Wait(%i)" % (value * 10000000)
        print newLine
    else:
        print line

示例输入:

Wait(0.000005);
Wait(0.000010);

Wait(0.000005);

示例输出:

//Wait(0.000005)

Wait(50)
//Wait(0.000010)

Wait(100)


//Wait(0.000005)

Wait(50)