由于我对Python非常陌生,这对您来说可能是一个简单的问题!
我想对给定文件夹“folder_a”中所有具有特定名称的目录执行一个进程(其中包括“文件夹1”、“文件夹2”、.)。
第一个问题:如何获得所有目录和folder_a的列表?我试过的是:
sub_folders in glob.glob("OPER.safe"):打印sub_folders
但是,这只会创建一个包含所有目录的字符串,这在我的情况下并没有多大帮助。
第二个问题:如果我有这个列表,并且喜欢一个接一个地使用for-循环访问每个文件夹,我该如何做呢?
提前谢谢你!
发布于 2016-08-05 13:07:56
要迭代目录的内容,可以使用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列表,因为您正在专门查找一个目录。所有文件都在文件中。
https://stackoverflow.com/questions/38789519
复制相似问题