首先想到的是一个文件行数如何统计,文件对象其实是可以遍历的,而且是以行来遍历的,例如:
num = 1
f = open('文件路径', 'rb')
for line in f:
num += 1
f.close()
print(num)
那么如果我想统计当前文件加下的所有非文件夹对象的行数,不管是什么文件的行数呢,首先想到的是os.walk,例如:
import os
print(os.walk('.'))
for root, dirs, files in os.walk('.'):
print(root)
print(dirs)
print(files)
print('--------------------------------')
那么就可以封装两个函数了:
import os
def file_paths():
"""
获取当前目录下所有非文件的路径
:return: 返回路径列表
"""
path_list = []
for root, dirs, files in os.walk('.'):
if not len(files) == 0:
for file_name in files:
path = os.path.join(root, file_name)
path_list.append(path)
return path_list
def count_lines(path):
"""
根据文件路径统计文件的行数
:param path: 文件路径
:return: 行数
"""
num = 1
f = open(path, 'rb')
for line in f:
num += 1
f.close()
return num
if __name__ == '__main__':
count = 0
for path in file_paths():
print(path)
count += count_lines(path)
print(count)
最后可以获得,此代码所在的文件下,和子文件下的所有文件的行数的总和了。