python - 目录搜索返回的文件数不正确
问题描述
我正在使用 Python3、Linux Mint 和 Visual Studio Code。
同样使用以下代码查看目录中是否存在任何 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'):
.
推荐阅读
- apache-kafka - 如果消息未提交,Kafka Consumer如何自动轮询
- c - 通过动态内存分配和 void 函数进行矩阵乘法
- reactjs - Material-UI TreeView 组件在添加子项时不会重新渲染
- python - 将 Python Pandas Groupby() 行与另一个 Groupby() 值相加?
- javascript - 添加 AOS JS 库后,我的自定义 CSS 过渡动画无法悬停
- java - 如何从 Firebase 授权中检索信息
- swift - 可可(macOS)中 AVAudioRecorder 的正确用法是什么?
- c++ - 使用 C++ gRPC 生成的存根文件(.pb.h/cc、grpc.pb.h/cc)构建控制台应用程序时,链接错误 (LNK2001) 无法解析外部符号
- python - 在 Python 中查找行值并替换列名
- oracle - 如何在 Oracle 中将 Unix 时间戳转换为本地日期?