使用python搜索和替换

2024-06-07 03:48:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件“模板.txt““

function FA()
{
    if(){...}
    message=[msg]
    message=[msg]
}
function FB()
{
    if(){...}
    message=[msg]
    message=[msg]
}
function FC()
{
    if(){...}
    message=[msg]
    message=[msg]
}

我想这样做:

./script.py --function FB --message TEST

得到这个结果:

function FA()
{
    if(){...}
    message=[msg]
    message=[msg]
}
function FB()
{
    if(){...}
    message=TEST
    message=TEST
}
function FC()
{
    if(){...}
    message=[msg]
    message=[msg]
}

我现在可以使用getopt正确地检索所有选项和参数,但是我不知道如何优雅地实现上述行为。有什么想法吗?有什么图书馆可以帮我做这个吗?你知道吗

我可以用AWK实现这个行为,但是现在我需要用python实现它。在AWK中,您可以转到一个特定的行(例如function FC()),然后从那里开始替换,直到碰到另一个函数为止。我似乎无法用python解决这个问题。你知道吗

我还想知道是否有更好的方法来解决这个问题。你知道吗


Tags: 文件pytesttxt模板messagefbif
1条回答
网友
1楼 · 发布于 2024-06-07 03:48:32

一旦你得到了你的变量,并对它们进行了适当的清理,你就可以这样做了。你知道吗

def templater(template,function,message):
    template = template.split('function')
    for i,f in enumerate(template):
        if function in f:
            template[i] = f.replace('[msg]',message)
    return 'function'.join(template)

编辑: 作为更好的方法,您应该考虑使用格式化迷你语言http://docs.python.org/2/library/string.html#formatspec或实际的模板语言(如jinja2http://jinja.pocoo.org/docs/)来创建模板

相关问题 更多 >