我正在尝试查找并打印文件列表。
换句话说,我希望如果文件扩展名匹配(在本例中是 *.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/