You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以编程方式使用Radon?raw.analyze函数调用问题求助

解决Radon raw.analyze函数的使用问题

你遇到的核心问题是没搞清楚radon.raw.analyze()的参数要求——它需要的是代码的字符串内容,而不是文件路径。下面一步步帮你解决:

为什么直接传文件路径会得到错误结果?

当你把文件路径字符串传给analyze()时,函数会把这个路径本身当成一行代码来分析,所以结果显示只有1行逻辑代码,这完全符合它的运行逻辑,只是不是你想要的效果。

正确的使用方式

你需要先读取目标文件里的代码内容,把它转换成字符串,再传给analyze()。具体代码如下:

from radon.raw import analyze

# 替换成你的目标文件路径
target_file = "your_python_script.py"

# 读取文件中的代码内容
with open(target_file, 'r', encoding='utf-8') as f:
    code_string = f.read()

# 调用analyze分析代码
analysis_result = analyze(code_string)
print(analysis_result)

解释你之前的错误尝试

  • 直接用radon.raw.analyze(path_of_file)报错:因为你只导入了from radon.raw import analyze,此时全局命名空间里只有analyze这个函数,没有radon.raw这个模块对象,要么改成import radon.raw再调用radon.raw.analyze(),要么直接用analyze()。
  • import path_of_file后传参数:import是把文件当作Python模块导入,而不是读取文件内容,模块对象不是analyze()需要的字符串类型,所以会触发属性错误。

关于文档示例的说明

文档里的示例用"""def _split_tokens(...): ..."""这种多行字符串,其实就是模拟了一段代码的内容,本质上还是把代码的字符串形式传给analyze(),和我们读取文件内容再传入的逻辑是一致的。

内容的提问来源于stack exchange,提问作者fred russell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:26:33