我有此正则表达式从python代码库中删除所有打印语句:

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'


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

但是,我想修改它以注释掉其中所有带有打印语句的所有行(因此它们不会完全脱离代码库)。

我如何有效地做到这一点?更好的方法是将所有内容都转换为日志记录框架吗?

最佳答案

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" {} \;

关于python - 如何从Python代码库中注释/删除所有打印语句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24009310/

10-11 00:39
查看更多