python - 循环包含路径的 .csv 文件并将标签添加到第二列
问题描述
目前我正在尝试谷歌视觉。我收集了相当多的图像,现在我想用谷歌视觉来标记它们。
到目前为止,我有一个 .csv 文件,其中第一列包含图像的路径。现在我正在尝试遍历路径,然后将相应的标签添加到第二列。
import os
import io
from google.cloud import vision
import csv
import pandas as pd
from google.cloud.vision import types
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r'C:\Users\user\PycharmProjects\Test1\ServiceAccountToken.json'
client = vision.ImageAnnotatorClient()
csvPath = r'C:\Users\user\PycharmProjects\Test1\pictures\Tests.csv'
with io.open(csvPath, 'rb') as csv_file:
for lines in csv_file:
with io.open(lines, 'rb') as image_file:
content = image_file.read()
image = vision.types.Image(content=content)
response = client.label_detection(image=image)
labels = response.label_annotations.description
因此,在运行此代码后,我希望这个 .csv 文件包含第二列中的标签,此时我也收到此错误
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/Test1/googleVisionTests.py", line 17, in <module>
with io.open(lines, 'r') as image_file:
OSError: [Errno 22] Invalid argument: b'C:/Users/user/PycharmProjects/Test1/pictures/35mm-tR-hmR1ZGmE-unsplash.jpg\r\n'
我希望有人能帮忙!
谢谢!
解决方案
代替
with io.open(csvPath, 'rb') as csv_file:
和
with io.open(csvPath, 'r') as csv_file:
'rb' 以二进制模式打开文件,这里不需要 csv 文件
推荐阅读
- ios - 通过 Google 登录在实时数据库中创建 Firebase 用户
- facebook-graph-api - Instagram 个人与应用程序集成
- go - vnc 获取机器的屏幕打印
- domain-driven-design - 我的业务逻辑中的异常是否应该传播到我的控制器。
- ajax - 通过ajax未经身份验证的json响应后重定向到laravel中先前预期的页面
- datetime - 在 d3 中,如果月份和年份低于 t0,您如何格式化日期?
- javascript - ScrollMagic 在调整大小时更新触发位置
- sql - Postgres时间戳转换与时区
- javascript - Axios http 调用每次都被取消,即使它在浏览器上完美运行
- java - 变换列表