gpt4 book ai didi

python - 文件中最常见的 "startswith"以推断注释字符

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:22 25 4
gpt4 key购买 nike

我正在尝试确定文件可能使用的注释字符。例如:

site,rank
#alexa.com/rankings
google.com,1
yahoo.com,2

有没有办法在列表中获得最多的评论“startswith”路径,并将其与一组可能的评论字符相交?我现在正在做的是以下内容,但看起来很幼稚:

POSSIBLE_COMMENT_CHARS = ['#', '//', '/*', '*/']

def get_comment_char(file):
with open(file) as f:
for line in f:
for _char in POSSIBLE_COMMENT_CHARS:
if line.startswith(_char):
return _char

使用上面的文件数据,它将返回:

get_comment_char(myalexafile)
>>> #

最佳答案

我会将行的开头与您的评论字符串的组合相匹配,然后计算出现次数。

最后计算出现次数最多的字符串

text="""
site,rank
#alexa.com/rankings
google.com,1
#yahoo.com,2
//whatever
# another comment

"""

import collections,re

POSSIBLE_COMMENT_CHARS = ['#', '//', '/*', '*/']

c = collections.Counter(re.findall("^({})".format("|".join(re.escape(x) for x in POSSIBLE_COMMENT_CHARS)),
text,flags=re.MULTILINE))

print(max(c,key=lambda k: c.get(k)))

打印#

在一般情况下要小心 "|".join(re.escape(x) for x in POSSIBLE_COMMENT_CHARS 因为它意味着线性搜索。如果你有 5000 strings in your list it can be quite slow. 在这里没问题。

关于python - 文件中最常见的 "startswith"以推断注释字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53840655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com