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

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

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

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

12556閲覧

Pythonでパスを指定した際に発生するunicode errorを解消できません

tohon

総合スコア10

Python 3.x

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/19 09:24

編集2020/03/19 10:28

webスクレイピングを行おうと、参考事例を検索し、以下のコードを作成しました。
このコードについて、実行すると
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
というエラーコードが発生してしまい、調べてみた対処方法をいくつか試しましたが、このエラーが一向に解消できない状況です。
(追記)エラーコードの全文は以下の通りです。
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

このコードを作成した当初は、このエラーが発生することなく動いていましたが、数日経って本日再度実行してみたところ、なぜかこれが発生するようになっていました。

該当のコードは以下の通りです。

python

1# -*- coding: utf-8 -*- 2from selenium import webdriver 3from selenium.webdriver.chrome.options import Options 4import time 5 6options = Options() 7options.add_argument('--headless') 8driver = webdriver.Chrome('C:/Program Files/chromedriver_win32/chromedriver.exe', options=options) 9html = driver.get("http://www.data.jma.go.jp/gmd/risk/obsdl/index.php") 10time.sleep(1) 11 12#各地域のid属性取得========================================================== 13pr_list = [] 14prefecture = driver.find_elements_by_class_name("prefecture") 15for pr in prefecture: 16 pr = pr.get_attribute("id") 17 pr_list.append(pr) 18#========================================================================== 19 20#各地域の観測地点名取得========================================================== 21stname_list = [] 22for i in pr_list: 23 #順番に各地域へアクセス 24 driver.find_element_by_xpath('//*[@id="{}"]'.format(i)).click() 25 time.sleep(1) 26 #その地域の観測地点情報の取得 27 stations = driver.find_elements_by_xpath('//*[@class="station"]') 28 for station in stations: 29 station.click() #地点選択 30 time.sleep(1) 31 #地点名取得 32 stname = station.find_element_by_name("stname").get_attribute("value") 33 stname_list.append(stname) 34 #全部選択し終わったらその地域から離れ、別の地域へ 35 driver.find_element_by_css_selector("#buttonSelectStation").click() 36 time.sleep(1) 37print(stname_list) 38

この中の
driver = webdriver.Chrome('C:/Program Files/chromedriver_win32/chromedriver.exe', options=options) この記述方法に問題があるのではないかと思い、以下の対処方法を試しましたが、
同じエラーが出る状態が続いています。
・'C:/Program Files/chromedriver_win32/chromedriver.exe'の先頭にrを加える
・/を\や\に変更する

他に調べた中でエンコード方法(utf-8としていること)に問題があるのではないか?という考えも浮かんだのですが、どう対処すればよいかまではわかりませんでした。

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

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

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

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

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

meg_

2020/03/19 10:10

エラーはコードのどこで起きているのでしょうか?(エラーメッセージは全文掲載しましょう)
tohon

2020/03/19 10:29

ありがとうございます。 エラーメッセージの全文を追記いたしました。
meg_

2020/03/19 10:37

ソースコードのエンコーディングは「utf-8」で間違いないですか?
quickquip

2020/03/19 13:21

「該当のコード」はファイルに保存しているのですか? どうやって実行しているのですか?
hoshi-takanori

2020/03/19 19:17

File "<stdin>", line 1 なので、python を対話的に実行して該当のコードを読み込む時のパス指定方法に問題がある("C:\Users" で始まるパスを書いてる)のでは。
tohon

2020/03/23 02:20 編集

コメントをいただきまして、ありがとうございます。 コードはatomで作成したものを保存し、コマンドプロンプトから実行していました。 また、atomで作成していた際にエンコーディングはutf-8で設定しております。 hoshi-takanoriさんにご指摘いただいていることが原因だったようです。 最初はコマンドプロンプトに入って「python」と入力してから.pyファイルを指定して実行しようとしていたのですが、これを直接ファイル名の指定を行いますとこのunicodeエラーが出なくなりました。
guest

回答1

0

自己解決

原因は、コマンドプロンプト上で実行する際のパスの指定方法が間違っていたことでした。
エラーが起きていた時は、先にpythonの対話モードに入ってしまっており、これをせずに
C:\Users\username>"C:\Users\username\folder\folder2\file.py"
と直接ファイル名を指定して実行するとエラーが発生しませんでした。
大変初歩的なミスで恐縮です。

投稿2020/03/23 02:39

tohon

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問