python用函数替换打印

cap*_*oke 4 python

我正在使用python 2.6并在我的长程序中有一堆打印状态.如何用我的自定义打印功能替换它们,让我们称之为scribble().因为如果我只是搜索和替换涂鸦打印(没有结束parentesis.我认为正则表达式是怎么回事,但我跟他们尝试了一天左右,我似乎无法得到它的工作.

小智 9

使用 Pycharm

如果您使用的是 pycharm,则可以通过以下模式使用 Regex 函数:

Replace: print\s(.*)
With: print($1)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Ove*_*erv 7

使用编辑器

我不知道你正在使用哪个编辑器,但如果它支持RegEx搜索和替换,你可以尝试这样的事情:

Replace: print "(.*?)"
With: scribble( "\1" )
Run Code Online (Sandbox Code Playgroud)

我在Notepad ++中对此进行了测试.

使用Python

或者,您可以使用Python本身:

import re

f = open( "code.py", "r" )
newsrc = re.sub( "print \"(.*?)\"", "scribble( \"\\1\" )", f.read() )
f.close()

f = open( "newcode.py", "w" )
f.write( newsrc )
f.close()
Run Code Online (Sandbox Code Playgroud)