python-3.x - 使用 PIL(python)语法问题打开新图像
问题描述
我正在使用 PIL 将数千张图像从 .png 转换为 .jpg,以便我可以使用 openCV 加载图像并对其进行操作。
问题是我有一个文件,其中包含图像的位置,例如:
project/data/image/000000000.png
project/data/image/000000001.png
问题是,当我在变量中读取这些行时:
file = open("project/data/loc.txt", "r")
var = [ line[:-1] for line in file ]
我的变量 var 包含与 loc.txt 相同的行:
project/data/image/000000000.png
project/data/image/000000001.png
但是,接下来是 PIL。根据我能够找到并工作的内容,加载图像我需要将参数指定为:
Image.open(r"location")
因为我有 var 包含一系列字符串,所以使用:
image = []
for v in var:
image.append( Image.open(???????????????) )
我不知道该怎么办。
我不能连接“r”+ v,因为它想“r”location”(字符串中的字符串)。
我应该怎么办?你有什么建议吗?我无法避免读取包含位置的文件,因为我不可能手动键入每个位置数千次以上。
解决方案
如果您想传递该位置,您可以尝试将其作为原始字符串fr""
用于该目的。
location = "project/data/image/000000000.png"
img = Image.open(fr"{location}")
我们使用f string和 r (raw)。这允许我们在运行时对字符串值使用原始 ('r')。
注意:- 这仅适用于 3.5 以上的 python 版本(或 python 版本 >= 3.6)。
推荐阅读
- wordpress - 我需要在这个插件中为 wp_mail() 设置“Envelope-From”标头,但它不起作用
- ios - 运行此代码时,“开关”和“扩展”行出错。为什么?
- ios13 - 在 iOS 13 中跟踪多个对象
- api - 如何在 open api 3.0 中的命名参数下嵌套 JSON 有效负载
- google-apps-script - 以编程方式离线评估 Google 表格
- publish-subscribe - 限制某些白名单 IP 的订阅者连接到 google pub sub 中的 Topic
- angular - 从表单中的复选框中检索数据
- owasp - 在 ZAP 代理扫描中排除 URL 作为守护程序运行
- neo4j - NEO4J - ORDER BY 不被识别为子条款指令,而是作为纯文本
- python - skimage.io.imread 在给出字符串或路径时表现不同