質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

32609閲覧

OSErrorの対処方法について

taboopython

総合スコア40

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2019/06/07 07:16

編集2019/06/07 07:19

下記OSErrorの対処方法をご教示いただけますでしょうか。

<やりたいこと>
google cloud vision APIにより、実行すると、ローカルに保存してある画像ファイル(test.png)の内容からテキストを検出し、テキスト文を表示させたい。

<エラー内容>
Traceback (most recent call last):
File "detect.py", line 28, in <module>
res_json = text_detection(img_path)
File "detect.py", line 10, in text_detection
with open(image_path, "rb") as img:
OSError: [Errno 22] Invalid argument: 'C:\Users\a\Desktop\x07wesome'

<書いたコード>
windowsで実施
python3系

def text_detection(image_path): api_url = 'https://vision.googleapis.com/v1/images:annotate?key={}'.format(API_KEY) with open(image_path, "rb") as img: image_content = base64.b64encode(img.read()) req_body = json.dumps({ 'requests': [{ 'image': { 'content': image_content.decode('utf-8') # base64でエンコードしたものjsonにするためdecodeする }, 'features': [{ 'type': 'TEXT_DETECTION' }] }] }) res = requests.post(api_url, data=req_body) return res.json() if __name__ == "__main__": img_path = "C:\Users\Eizo\Desktop\awesome" res_json = text_detection(img_path) res_text = res_json["responses"][0]["textAnnotations"][0]["description"] #print(json.dumps(res_json, indent=4, sort_keys=True, ensure_ascii=False)) print(res_text) with open("result.json", "w") as js: js.write(res_text) 以上、対策がわかればご教示いただければ幸いです。 なお、 import requests import json import base64 およびAPIキーは記述している前提です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

期待しない形でエスケープシーケンスが働いてしまっています。
例えば \a はアラートを意味します。

raw文字列リテラルを使うのが簡単で融通が利きます。

Python

1r"C:\Users\Eizo\Desktop\awesome"

投稿2019/06/07 07:20

LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taboopython

2019/06/07 07:25

ありがとうございます!うまくいきました!
guest

0

python

1img_path = "C:\Users\Eizo\Desktop\awesome"

バックスラッシュはすべてエスケープして、"C:\Users\Eizo\Desktop\awesome"としてください。

投稿2019/06/07 07:19

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taboopython

2019/06/07 07:26

ありがとうございます!こちらも参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問