将Python搜索结果保存在变量中并使用其元素

时间:2016-08-05 12:41:14

标签: python loops

由于我对Python很陌生,这对你来说可能是一个简单的问题!

我想对给定文件夹中具有特定名称的所有目录执行一个流程' folder_a' (其中包括' folder_1',' folder_2',...)。

第一个问题:如何获取所有目录和folder_a的列表?我试过的是:

  

表示glob.glob中的子文件夹(" OPER .safe"):print sub_folders

但是,这只会创建一个包含所有目录的字符串,这在我的情况下并没有用。

第二个问题:如果我已经获得了列表并且想要使用for循环逐个访问每个文件夹,我该怎么做?

提前非常感谢你!

1 个答案:

答案 0 :(得分:4)

要遍历目录的内容,可以使用python的优秀os.walk函数:

import os
for root, dirs, files is os.walk(root_dir):
  for d in dirs:
    if search_term in d:
      do_something_to_directory(d)

os.walk()生成元组,其中root是您开始迭代的目录,dirs是目录列表,files是文件列表

编辑:如果您想从某个子目录中获取文件,请迭代文件并过滤所需的目录名称。试试看我的意思:

for root, dirs, files in os.walk(starting_directory_path):
  for f in files:
    absolute_path = os.path.join(root, f)
    if 'Desired Folder Name' in absolute_path:
      print absolute_path

由于os.walk()是递归的,所有子目录中的所有文件都将在files列表中。您只想使用dirs列表,而您正在寻找专门用于目录的列表。所有文件都在文件中。