如何在Python中读取目录图片并赋值给变量x(多路径形式)
嘿,这事儿不难,我给你捋清楚怎么实现👇
基础实现:获取指定目录下的图片(仅当前目录,不包含子文件夹)
要实现这个需求,我们可以用Python自带的os模块来遍历目录、筛选图片文件,最后把路径拼接成空格分隔的字符串。
import os # 替换成你的图片目录路径,当前目录就用'.',绝对路径比如'/Users/yourname/photos' image_directory = "./my_images" # 定义需要筛选的图片格式,可根据需求增减 allowed_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp') # 筛选出目录里符合格式的图片文件名 image_files = [filename for filename in os.listdir(image_directory) if filename.lower().endswith(allowed_extensions)] # 把列表转成空格分隔的字符串,赋值给变量x x = ' '.join(image_files) # 可以打印看看结果 print(x)
小细节:这里用filename.lower()是为了匹配大小写不同的后缀(比如.JPG、.Png也能被识别),如果只需要严格匹配小写后缀,去掉.lower()就行。
如果你需要的是完整的绝对路径而非仅仅文件名,只需要修改筛选那一行:
image_files = [os.path.join(image_directory, filename) for filename in os.listdir(image_directory) if filename.lower().endswith(allowed_extensions)]
这样x里的内容就会是类似/Users/yourname/photos/img.jpg /Users/yourname/photos/img1.jpg的格式。
进阶实现:递归遍历所有子目录里的图片
如果你的图片分散在目录的子文件夹里,想要一次性把所有图片都找出来,可以用os.walk递归遍历:
import os image_directory = "./my_images" allowed_extensions = ('.jpg', '.jpeg', '.png', '.gif') image_files = [] # 递归遍历目录下的所有文件和子目录 for root, dirs, files in os.walk(image_directory): for filename in files: if filename.lower().endswith(allowed_extensions): # 同样,要绝对路径就用os.path.join(root, filename),要相对路径就用os.path.relpath(...) image_files.append(os.path.join(root, filename)) x = ' '.join(image_files) print(x)
这样不管图片在哪个子文件夹里,都会被收集到x里,完美解决多层目录的问题~
内容的提问来源于stack exchange,提问作者SFDC
相关产品推荐
相关产品推荐

