在上述代码中如果是.ipynb格式的文件要如何读取
时间: 2024-02-29 19:53:05 浏览: 29
如果要读取 `.ipynb` 格式的文件,你可以使用 `json` 库来解析该文件。以下是示例代码:
```python
import json
from radon.visitors import ComplexityVisitor
class MyClass:
def my_function(self):
for i in range(10):
if i % 2 == 0:
print(i)
else:
print("odd")
file_path = "example.ipynb"
with open(file_path, "r", encoding='utf-8') as f:
notebook = json.load(f)
code = ""
for cell in notebook["cells"]:
if cell["cell_type"] == "code":
code += cell["source"] + "\n"
visitor = ComplexityVisitor.from_code(code)
print("圈复杂度:", str(visitor.total_complexity()))
# 统计代码行数和函数数量的代码不需要修改,可以直接使用
duplication = radon.complexity.cc_duplicate(code)
print("代码重复率:", str(duplication))
```
修改点:
1. 使用 `json.load()` 方法来解析 `.ipynb` 文件。
2. 遍历 `notebook["cells"]` 列表,将 `cell["source"]` 字符串拼接在一起,得到完整的代码字符串 `code`。
3. 统计圈复杂度的代码不需要修改,可以直接使用。
4. 统计代码行数和函数数量的代码也不需要修改,可以直接使用。
5. 统计代码重复率的代码也可以直接使用。