比较列表中的项目与目录python

时间:2020-07-02 10:52:55

标签: python mysql list file

我有一个列表,其中包含我的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)

2 个答案:

答案 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)