目录搜索 returns 不正确的文件数

Directory search returns incorrect number of files

我正在使用 Python3、Linux Mint 和 Visual Studio 代码。

同时使用以下代码查看目录中是否存在任何 evtx 文件:

    print("Number of EVTX files in each individual folder:")
path = '/home/user/CI5235_K1915147_Sam/evtx_logs'
folders = ([name for name in os.listdir(path)])
targets = []
for folder in folders:
    contents = os.listdir(os.path.join(path,folder))
    for i in contents:
        if i.endswith('evtx'):
            targets.append(i)
    print(folder, len(contents))
print ("Total number of evtx files = " + str(len(targets)))

print()

它搜索 evtx_logs 的目录和子目录并列出其中的每个文件。我如何才能修改它,以便它只计算 evtx 文件,因为它当前正在计算也在文件夹中的其他 .xml 文件。

修改您现有的代码以使用上面建议的 glob

#!/usr/bin/env python3
import os
import glob
print("Number of EVTX files in each individual folder:")
path = '/home/user/CI5235_K1915147_Sam/evtx_logs'
folders = ([name for name in os.listdir(path)])
targets = []
for folder in folders:
    contents = glob.glob(os.path.join(path,folder)+"/*evtx")
    for i in contents:
        targets.append(i)
    print(folder, len(contents))
print ("Total number of evtx files = " + str(len(targets)))

print()

您自己的代码存在的问题是,您打印的是内容的长度(始终是目录中的所有文件),而不是 if i.endswith('evtx'):.[=13= 中的匹配项数]