通过计算已处理的图像来显示 for 循环的进度 [Python]

Show progress in for loop by counting the images already processed [Python]

我想统计一下已经转换的图片数量。因此我必须以某种方式修改print('converting')

def convert(self):          
        directory = [fn for fn in os.listdir(self.destination_folder) 
                      if any(fn.endswith(ext) for ext in included_extensions)]
        for item in directory:
            if item.endswith('.jpg' ): 
                img = Image.open(self.destination_folder + item)
                pathx = self.destination_folder + item
                convert='mogrify -virtual-pixel Black +distort Plane2Cylinder 53 -crop 2060x2060+620+202 %s' %pathx
                
                subprocess.run(convert, env={'PATH': path_cur})
                print('converting')

输出应该是这样的。 xxx应该是directory中的文件总数。

converting [1/xxx]
converting [2/xxx]
converting [3/xxx]
...

我怎样才能得到这个输出?

在无法访问您的数据的情况下,可能是这样的:

def convert(self):          
        directory = [fn for fn in os.listdir(self.destination_folder) 
                      if any(fn.endswith(ext) for ext in included_extensions)]

        train_length = len(directory)
        counter = 1

        for item in directory:
            if item.endswith('.jpg' ): 
                img = Image.open(self.destination_folder + item)
                pathx = self.destination_folder + item
                convert='mogrify -virtual-pixel Black +distort Plane2Cylinder 53 -crop 2060x2060+620+202 %s' %pathx
                
                subprocess.run(convert, env={'PATH': path_cur})
                print('converting', '[',counter,'/', train_length, ']')
                counter += 1

上面评论中的enumerate方法比较好