我有一个列表,其中包含我的MySQL表的行,看起来像list1 = [a,b,c,d]
。我还有一个Directoy,其中包含100多个文件夹,其中包括list1
中的几个同名文件夹。现在,我只想输入与list1相同名称的文件夹。我怎么做?这是我当前的代码,但似乎不起作用:
source = r'c:\data\OVER\Desktop\Source'
list1= [i[0] for i in cursor.fetchall()]
directory= os.listdir(source)
if rows_mysql in directory:
os.listdir(source)
答案 0 :(得分:0)
查找两个列表共有的项的最有效方法是将它们转换为集合,然后找到这些集合的交集:
s1 = set(list1)
s2 = set(directory)
matches = s1 & s2 # common to both
for match in matches:
os.listdir(match)
我不知道您的变量rows_mysql
是什么。在不使用集合的情况下,您的代码应该是:
for item in list1:
if item in directory:
os.listdir(item)
答案 1 :(得分:0)
@Booboo。谢谢。
好吧,我实际上找到了一个解决方案,对我有用。可以帮助您:
source = r'c:\data\OVER\Desktop\Source'
list1= [i[0] for i in cursor.fetchall()]
directory= os.listdir(source)
#print(list1)
#print(directory)
for x in list1:
if x in directory:
subdir_path = os.path.join(source, x)