python - 如何在os.walk函数中过滤特定路径的文件?

标签 python bash macos

我正在尝试查找并打印文件列表。 换句话说,我希望如果文件扩展名匹配(在本例中是 *.wav 文件)以及其路径中的一个字符串,则显示文件列表。如果两者都为真,则应显示它。 文件路径出现在路径字符串中间的某个位置。

import glob
import os

for root, dirs, files in os.walk("/Volumes/FreeSys/Repos/zz_Test_Files/_Ordnerstruktur_190205"):
    for file in files:
        if file.endswith(".wav"):
             print(os.path.join(root,file))

此代码当前根据 os.walk 函数下设置的路径查找 .wav 文件。

理论上,我只需要在 if 子句中使用 and 即可,它只允许显示文件,其中 2_Recorded_Files 是在路径中。如果该字符串不在文件路径中,则应忽略该文件。 由于我正在开始学习 Python 的旅程,因此我将不胜感激任何帮助。

最佳答案

一种方法是将分解为构成路径的所有文件夹的列表,并检查2_Recorded_Files是否在此列表中。然而,路径可能很棘手,因为它们在不同操作系统上的行为可能有所不同。我们可以使用 os.sep 分割 root 中的路径,其中包含您正在执行代码的操作系统中使用的分隔符。

import glob
import os

target_folder = "2_Recorded_Files"

for root, dirs, files in os.walk("/Volumes/FreeSys/Repos/zz_Test_Files/_Ordnerstruktur_190205"):
    for file in files:
        if file.endswith(".wav") and target_folder in root.split(os.sep):
             print(os.path.join(root,file))

关于python - 如何在os.walk函数中过滤特定路径的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57759356/

相关文章:

c++ - 从文件中读取 SCons 环境设置

bash - 8 位/颜色 RGB 和 8 位颜色图之间的区别

c++ - Xcode编译没有图像SFML的应用程序

c++ - 生成错误 :Undefined symbols for architecture x86_64:

python - 将值插入排序数组

python - 滚动窗口的数据帧表示

python - 将文本锚定或锁定到 Matplotlib 中的标记

linux - 基本名称的多个文件

bash - -bash : syntax error near unexpected token `)'

linux - 是否可以实现用 Apple Swift 语言编写的跨平台(在 OS X 和 Linux 上编译和运行)GUI 应用程序?