用Python统计其中的代码行数,包括多次例化的模块。对于子模块,会递归地统计其代码行数,并将其加到父模块的行数中,include文件也需要统计
时间: 2023-12-27 08:04:33 浏览: 49
可以使用Python中的os模块和正则表达式来实现代码行数统计。具体步骤如下:
1. 遍历指定目录下的所有文件和子目录,得到所有的文件路径。
2. 对于每个文件,判断文件类型是否为.py或者.h/.cpp等代码文件,如果是,则打开文件,逐行读取并统计非注释、非空白行的数量。
3. 对于每个子目录,递归调用代码行数统计函数。
4. 将每个文件和子目录的代码行数累加到父模块的行数中。
下面是一个示例代码:
```python
import os
import re
def count_lines(path):
"""
统计指定路径下所有代码文件的代码行数
"""
total_lines = 0
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
# 判断文件类型是否为.py或者.h/.cpp等代码文件
if re.match(r'.*\.(py|h|cpp|c)$', file_path):
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
# 统计非注释、非空白行的数量
if line.strip() and not line.strip().startswith('#'):
total_lines += 1
for dir in dirs:
# 递归调用代码行数统计函数
total_lines += count_lines(os.path.join(root, dir))
return total_lines
if __name__ == '__main__':
path = '/path/to/your/code/dir'
lines = count_lines(path)
print(f'Total lines of code: {lines}')
```
注意:该代码仅供参考,实际应用中可能需要根据具体情况进行修改。
阅读全文