Python 通过迭代从文件中提取文件夹名称-缓慢
我有一个程序,需要在文件和子目录中循环。我需要提取已提取的子文件夹名称 我有一本字典,其中包含我需要使用的所有子文件夹名称,Python 通过迭代从文件中提取文件夹名称-缓慢,python,python-2.7,Python,Python 2.7,我有一个程序,需要在文件和子目录中循环。我需要提取已提取的子文件夹名称 我有一本字典,其中包含我需要使用的所有子文件夹名称,d。然后通过遍历这些文件,我需要检查它们的director是否在d中 这是我的密码: d = {'folder_1': 'a', 'folder_2': 'b', 'folder_3': 'c'} dir_path = "/Users/user_1/Desktop/images_testing" for root, directories, files in os.wal
d
。然后通过遍历这些文件,我需要检查它们的director是否在d中
这是我的密码:
d = {'folder_1': 'a', 'folder_2': 'b', 'folder_3': 'c'}
dir_path = "/Users/user_1/Desktop/images_testing"
for root, directories, files in os.walk(dir_path):
for filename in files:
filepath = os.path.join(root, filename)
temp_path = os.path.dirname(filepath)
temp_sub_dir = temp_path.split("/")
if temp_sub_dir[-1] in d:
#do some work
这很好,但速度非常慢。有没有办法让这个过程更快?它非常慢。
我的主要问题是:
temp_path = os.path.dirname(filepath)
temp_sub_dir = temp_path.split("/")
我不需要完整路径,我只需要这个文件来自的文件夹名 这样做怎么样:
for root, directories, files in os.walk(dir_path):
temp_sub_dir = os.path.basename(root)
if temp_sub_dir in d:
for filename in files:
filepath = os.path.join(root, filename)
#do some work
在“漫游”过程中,检查当前目录是否是
d
中列出的目录之一。如果是并且此字典位置中的文件位于当前目录中,则“执行某些操作”。似乎更简单
import os
d = {'folder_1': 'a', 'folder_2': 'b', 'folder_3': 'c'}
dir_path = "/Users/user_1/Desktop/images_testing"
for dirpath, dirnames, filenames in os.walk(dir_path):
if os.path.split(dirpath) in d and d[os.path.split(dirpath)] in files:
#do some work