如何评论/删除Python代码库中的所有打印语句?

时间:2014-06-03 07:23:37

标签: python regex django logging comments

我有这个正则表达式从python代码库中删除所有print语句:

for f in $(find . -name '*.py') ;
do
egrep -v '^[ \t]print ' $f > $f.new
mv $f.new $f
done

但它确实不起作用..

find . -name '*.py' | xargs egrep '^[ \t]*print'

仍然从我的代码打印出打印语句.. :(

但是,我想将其修改为 comment ,删除其中包含print语句的所有行(因此它们不会完全脱离代码库)。

我怎样才能有效地做到这一点?更好的是还有一种将所有内容转换为日志框架的自动方式吗?

1 个答案:

答案 0 :(得分:2)

Sed是这项工作的工具。

find . -name '*.py' -exec sed -ri "s/(^\s*)(print.*$)/#\1\2/g" {} \;

对于Mac OS X或BSD:

find . -name '*.py' -exec sed -Ei "s/\(^[[:space:]]*\)\(print.*$\)/#\1\2/g" {} \;