您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python正则表达式删除评论

python正则表达式删除评论

您可以通过使用解析Python代码删除注释tokenize.generate_tokens。以下是从docs对该示例进行的稍微修改的版本:

import tokenize
import io
import sys
if sys.version_info[0] == 3:
    StringIO = io.StringIO
else:
    StringIO = io.BytesIO

def nocomment(s):
    result = []
    g = tokenize.generate_tokens(StringIO(s).readline)  
    for toknum, tokval, _, _, _  in g:
        # print(toknum,tokval)
        if toknum != tokenize.COMMENT:
            result.append((toknum, tokval))
    return tokenize.untokenize(result)

with open('script.py','r') as f:
    content=f.read()

print(nocomment(content))

例如:

如果script.py包含

def foo(): # Remove this comment
    ''' But do not remove this #1 docstring 
    '''
    # Another comment
    pass

然后的输出nocomment

def foo ():
    ''' But do not remove this #1 docstring 
    '''

    pass
python 2022/1/1 18:34:18 有243人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶