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

问题描述

我想计算已经转换的图片数量。因此,我必须以某种方式修改make: *** No rule to make target 'request/request.o',needed by 'build'. Stop.

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

我怎样才能得到这个输出

解决方法

在无法访问您的数据的情况下,可能类似于:

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 方法更好。