Files
courses/py3interm/ANSWERS/folder_scanner.py
T
2025-05-20 11:57:43 -04:00

36 lines
906 B
Python

#!/usr/bin/env python
import sys
import os
from multiprocessing.dummy import Pool
import re
def main():
start_folder = sys.argv[1]
file_paths = []
for curr_dir, dir_list, file_list in os.walk(start_folder):
for file_name in file_list:
file_paths.append(os.path.join(curr_dir, file_name))
pool = Pool(64)
results = pool.map(analyze_file, file_paths)
total_files = len(file_paths)
total_bytes = sum(r[0] for r in results)
total_lines = sum(r[1] for r in results)
print("Number of files:", total_files)
print("Number of bytes:", total_bytes)
print("Number of lines:", total_lines)
def analyze_file(file_path):
with open(file_path, "rb") as file_in:
contents = file_in.read()
num_bytes = len(contents)
num_lines = contents.count(b'\n')
return num_bytes, num_lines
if __name__ == '__main__':
main()