统计 python 源代码文件中代码行数,去除注释,空行,进行输出?
时间: 2024-05-10 07:21:31 浏览: 220
可以使用以下代码来统计 Python 源代码文件中的代码行数,去除注释和空行:
```python
import os
def count_code_lines(file_path):
lines = 0
with open(file_path, 'r') as f:
is_comment = False
for line in f:
line = line.strip()
if line.startswith('"""') or line.startswith("'''"):
is_comment = not is_comment
elif is_comment or line.startswith('#') or not line:
continue
else:
lines += 1
return lines
# 指定目录
dir_path = 'path/to/directory'
# 遍历目录下所有 py 文件并统计代码行数
total_lines = 0
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith('.py'):
file_path = os.path.join(root, file)
lines = count_code_lines(file_path)
total_lines += lines
print(f'{file_path} : {lines}')
print(f'Total lines of code: {total_lines}')
```
代码解释:
1. 定义一个函数 `count_code_lines`,输入为文件路径,输出为该文件中的代码行数。
2. 在 `count_code_lines` 函数中,使用 `with open` 打开文件,并遍历文件中的每一行。
3. 使用一个布尔变量 `is_comment` 来记录当前是否在注释中,如果在注释中,则跳过当前行。
4. 使用 `strip` 方法去除每行开头和结尾的空格和换行符。
5. 判断当前行是否是注释或空行,如果是,则跳过当前行,否则代码行数加一。
6. 在主程序中,使用 `os.walk` 遍历指定目录下的所有文件和子目录。
7. 对于每个以 `.py` 结尾的文件,调用 `count_code_lines` 函数来统计代码行数,并累加到总行数中。
8. 输出每个文件的代码行数和总行数。
阅读全文