Python выводит количество файлов в каждом подкаталоге для определенного файла (* .doc) в файл csv - PullRequest
0 голосов
/ 11 июня 2018

Хотелось бы узнать, можно ли посчитать определенные файлы в папке и подпапках (например, все файлы ".doc" в папках) с помощью прецедентного сценария публикации @Mark Tolonen на выходе Python: количество файлов в каждомподкаталог к ​​CSV-файлу (своего рода попытка подсчета конкретного файла)?

import os
import csv

# Open the csv and write headers.
with open("Subject_Task_Count.csv",'wb') as out:
    outwriter = csv.writer(out)
    outwriter.writerow(['Directory','FilesInDir','FilesIncludingSubdirs'])

    # Track total number of files in each subdirectory by absolute path
    totals = {}

    # topdown=False iterates lowest level (leaf) subdirectories first.
    # This way I can collect grand totals of files per subdirectory.
    for path,dirs,files in os.walk('.',topdown=False):
        files_in_current_directory = len(files)

        # Start with the files in the current directory and compute a
        # total for all subdirectories, which will be in the `totals`
        # dictionary already due to topdown=False.
        files_including_subdirs = files_in_current_directory
        for d in dirs:
            fullpath = os.path.abspath(os.path.join(path,d))

            # On my Windows system, Junctions weren't included in os.walk,
            # but would show up in the subdirectory list.  this try skips
            # them because they won't be in the totals dictionary.
            try:
                files_including_subdirs += totals[fullpath]
            except KeyError as e:
                print 'KeyError: {} may be symlink/junction'.format(e)

        totals[os.path.abspath(path)] = files_including_subdirs
        outwriter.writerow([path,files_in_current_directory,files_including_subdirs])
...