私は現在フレームワークをハッキングしています。ロギングを使用したいと思います。しかし、フレームワークの開発者は、printステートメントを使用してデバッグしており、それらはすべて本番リリースではコメントアウトされています。私は疑問に思っていた、誰かがこれらを見つけてログを呼び出すように変換する正規表現を知っていますか?コメント文をロギング呼び出しに変換 - Python
import re
import sys
import StringIO
if not len(sys.argv) != 2:
print 'Syntax: printtologging.py file_to_process'
regex = r'#print (?P<debugstring>*)$'
output = StringIO.StringIO('w+')
def replace(match_object):
return 'logging.debug({0})'.format(match_object.group_dict['debugstring'])
with open(sys.argv[1]) as f:
output.writelines([re.sub(regex, replace, line) for line in f.readlines()])
output.seek(0)
print output.read()
それが働いているように見えるけれどもdosn't:
は、これは私がこれまで考えていたものです。私の正規表現ははるかに鮮明ではありません。
正規表現で '*'の代わりに '。*'が必要だと思います。 (その変更がなければ、このコードは私のために実行されません) –
また、これは 'sed'または' perl'の1行です。たとえば、 'perl -p -i.orig -e '/#print(。*)/ logging.debug(\ 1)/' FILE ... 'のようになります。あなたのプログラムが1行で、もう一度それを読む予定がない場合、Perlは最高です。 ;) –