gpt4 book ai didi

python - 在 python 中对 C++ 程序进行标记

转载 作者:行者123 更新时间:2023-12-01 04:02:05 25 4
gpt4 key购买 nike

我需要为我的项目标记 C++ 文件。为此,我使用 tokenize.generate_tokens。在每一行中,由于“\r”,我得到一个奇怪的字符,它被解析为一个 token 。我需要避免该字符来计算 token 。当我将文件传递给 tokenize 时,我不确定如何做到这一点。下面是我正在使用的代码:

f = open("BM1A1.cpp","r")
g = tokenize.generate_tokens(f.readline)

我尝试了 strip() 但给出了错误

g = tokenize.generate_tokens(f.readline.strip())
error:
'builtin_function_or_method' object has no attribute 'strip'

最佳答案

由于 generate_tokens 需要可调用作为输入参数,因此您需要创建自定义函数。

The generate_tokens() generator requires one argument, readline, which must be a callable object which provides the same interface as the readline() method of built-in file objects (see section File Objects). Each call to the function should return one line of input as a string.Alternately, readline may be a callable object that signals completion by raising StopIteration.

最简单的方法是创建 lambda:

f = open("BM1A1.cpp","r")
g = tokenize.generate_tokens(lambda: f.readline().strip())

显然,你会遇到奇怪的解析结果,因为 tokenize 模块是为 Python 语法定义的,而不是 C++ 语法。

关于python - 在 python 中对 C++ 程序进行标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36318387/

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