TypeError: listdir() takes at most 1 argument (2 given)

TypeError: listdir() takes at most 1 argument (2 given)

我想同时遍历 2 个文件夹,因为我想在两个不同的位置处理成对的图像,不幸的是,listdir 只接受 1 个参数,所以它不允许我像在列表中一样遍历两个文件夹例子。还有其他方法吗?谢谢

mypath2 = os.path.join('c:\trainstcolor2')
images2 = list()


mypath = os.path.join('c:\trainst2')
images = list()

for item,item2 in os.listdir(mypath,mypath2):

   image = cv2.imread(os.path.join(mypath, item))
   image2 = cv2.imread(os.path.join(mypath2, item2))

   if image is not None:

       images.append(image)
       images2.append(image2)

您不想按原样使用 os.listdir 因为(来自 documentation):

The [returned] list [of files] is in arbitrary order.

因此,您可能需要以下内容:

images1 = sorted(os.listdir(mypath))
images2 = sorted(os.listdir(mypath2))

for item, item2 in zip(images1, images2):
    # ...