【发布时间】:2018-10-09 09:48:02
【问题描述】:
下面的循环将获取目录和/或图像列表,并将返回图像列表,包括提供的目录中的图像。对于给定的每个目录,它会验证每个文件确实是一个有效的图像,然后再将该图像添加到列表中。
import os
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-style_image", help="List of images and/or directories")
params = parser.parse_args()
style_image_input = params.style_image.split(',')
valid_ext, style_input_sorted = [".jpg",".png"], None
for image in style_image_input:
if os.path.isdir(image):
for file in os.listdir(image):
print(file)
ext = os.path.splitext(file)[1]
if ext.lower() not in valid_ext:
continue
if style_input_sorted == None:
style_input_sorted = file
else:
style_input_sorted += "," + file
else:
if style_input_sorted == None:
style_input_sorted = image
else:
style_input_sorted += "," + image
style_image_list = style_input_sorted.split(',')
print(style_image_list)
如何使用列表推导来简化这个循环?
【问题讨论】:
-
你不能。为什么你会考虑将一个 16 行长的循环变成一个列表理解?
-
因为重复的模式似乎可以让我简化代码,从而减少行数。
标签: python string sorting directory list-comprehension