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

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

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

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

Q&A

解決済

3回答

487閲覧

【Python】ファイルの絶対パスがエスケープシーケンス扱いになってしまう

tigol

総合スコア2

Python 3.x

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

0グッド

1クリップ

投稿2022/09/25 13:08

前提

Python初心者です。
絶対パスを使ったファイルの出力について簡単なコードを記述していたところ
Pythonコード1のエラーが発生しました。

エラーが発生した理由についてご教示いただければ幸いです。

発生している問題・エラーメッセージ

Pythonコード1のエラー

1SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Pythonコード2のエラー

1FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\ikate\\Documents\\my test\\pi_digits.text'

該当のソースコード

Pythonコード1

1with open("C:\Users\ikate\Documents\my test\pi_digits.text") as file_object: 2 contents = file_object.read() 3 print(contents.rstrip())

Pythonコード2

1with open(r"C:\Users\ikate\Documents\my test\pi_digits.text") as file_object: 2 contents = file_object.read() 3 print(contents.rstrip())

試したこと

\がエスケープシーケンスの扱いとなっていて、パスがきちんと設定されていないと、
ネット上に情報がありました。
(コードは\となっていますが実際は\です)

その対処法として、前にrと置くやり方やバックスペースを二重で置くやり方を試しましたが
Pythonコード2のエラーが表示されてしまいました。

もし原因がわかる方がいらっしゃったらご教示いただけましたら幸いです。

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

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

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

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

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

meg_

2022/09/26 01:02

> (コードは\となっていますが実際は\です) 実際のコードでは「\」なのですか?\で良いですよ。
guest

回答3

0

ベストアンサー

その対処法として、前にrと置くやり方やバックスペースを二重で置くやり方を試しましたが
Pythonコード2のエラーが表示されてしまいました。

C:\Users\ikate\Documents\my test\pi_digits.textというファイルが無いと言うことです。
タイプミスをチェックしましょう。

投稿2022/09/25 14:21

otn

総合スコア84423

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

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

tigol

2022/09/26 16:57

申し訳ありません。タイプミスでした! ご回答いただき、ありがとうございました。
otn

2022/09/27 00:17

初心者の「うまく行かない」は半分以上がタイプミスの類いです(書かれている通りにやってないとかも)。
guest

0

それこそ、エスケープシーケンスでぐぐるとでてきますが、
文字列中にバックスラッシュを書くときは、\\と2つ重ねないとあきません

投稿2022/09/25 13:30

y_waiwai

総合スコア87719

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

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

0

raw文字列を使いましょう。
あるいは、Pythonの中ではディレクトリ区切りに / を使うといいですよ。

py

1>>> "C:\Users\ikate\Documents\my test\pi_digits.text" 2 File "<stdin>", line 1 3SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 4>>> r"C:\Users\ikate\Documents\my test\pi_digits.text" 5'C:\\Users\\ikate\\Documents\\my test\\pi_digits.text'

py

1with open(r"C:\Users\ikate\Documents\my test\pi_digits.text") as file_object: 2 contents = file_object.read() 3 print(contents.rstrip())

投稿2022/09/25 13:18

編集2022/09/25 13:19
shiracamus

総合スコア5406

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問