它之前得到了回答,但流行答案的代码在Windows上不起作用。
我正在学习python并尝试编写一个scipt来计算.NET项目中的代码行。
用我的目录……
在你的情况下,问题是 break ,如果文件没有以.cs或.vb结尾,你只需跳过目录,就需要更改它 continue 如下:
break
continue
import os root = r"C:\Users\frank\Daten\Projekte\CS\mpv.net" allLines = [] for path, subdirs, files in os.walk(root): for name in files: filepath = os.path.join(path, name) if not filepath.endswith( ('.cs','.vb') ): continue with open(filepath) as f: lines = f.read().splitlines() for line in lines: allLines.append(line) print(len(allLines))
此代码也可以获得改进:
import os root = r"C:\Users\frank\Daten\Projekte\CS\mpv.net" allLines = 0 for path, subdirs, files in os.walk(root): for name in files: if not filepath.endswith( ('.cs','.vb') ): continue filepath = os.path.join(path, name) with open(filepath) as f: lines += len(f.read().splitlines()) print(allLines)
现在帮助它很好,谢谢!
import os root = r"C:\Users\frank\Daten\Projekte\CS\mpv.net" count = 0 for path, subdirs, files in os.walk(root): for name in files: if not name.endswith( ('.cs','.vb') ): continue filepath = os.path.join(path, name) with open(filepath) as f: count += len(f.read().splitlines()) print(count)