当前位置:  开发笔记 > 编程语言 > 正文

如何使用正则表达式跳过docstring

如何解决《如何使用正则表达式跳过docstring》经验,为你挑选了1个好方法。

我正在尝试将一些导入行插入到python源文件中,但我最好将它们放在初始docstring之后.假设我将文件加载到lines变量中,如下所示:

lines = open('filename.py').readlines()

如何找到文档字符串结束的行号?



1> Brian..:

您可以使用python的tokenize模块,而不是使用正则表达式,或依赖于特定的格式.

import tokenize
f=open(filename)
insert_index = None
for tok, text, (srow, scol), (erow,ecol), l in tokenize.generate_tokens(f.readline):
    if tok == tokenize.COMMENT:
        continue
    elif tok == tokenize.STRING:
        insert_index = erow, ecol
        break
    else:
        break # No docstring found

这样你甚至可以处理病态案例,如:

# Comment
# """Not the real docstring"""
' this is the module\'s \
docstring, containing:\
""" and having code on the same line following it:'; this_is_code=42

正如python会处理它们一样.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有