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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ドキュメント

ドキュメントは、IT用語では、ソフトウェアやハードウェアに関する情報であり、意図された目的、機能性、メインテナンスを含みます。ドキュメントは、多くの様々なフォームとフォーマットに存在しますが、その目的は常に教育することにあります。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Python

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

Q&A

解決済

2回答

1652閲覧

テキストドキュメントの読み込みエラーの解決方法

Brot

総合スコア23

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ドキュメント

ドキュメントは、IT用語では、ソフトウェアやハードウェアに関する情報であり、意図された目的、機能性、メインテナンスを含みます。ドキュメントは、多くの様々なフォームとフォーマットに存在しますが、その目的は常に教育することにあります。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Python

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

0グッド

0クリップ

投稿2020/10/11 04:48

前提・実現したいこと

初歩的な質問で申し訳ないですが、よろしくお願いします。
PythonのIDLE上で、テキストドキュメントを読み込もうとしたのですが、FileNotFoundErrorが出てしまいました。
同じことをコマンドプロンプト上でやると問題なくできたので、何か根本的なことが間違っているのでしょうか?
(Python3.8.5 windows10)

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

Python

1Traceback (most recent call last): 2 File "<pyshell#21>", line 1, in <module> 3 with open("ch_10.txt", "r") as f: 4FileNotFoundError: [Errno 2] No such file or directory: 'ch_10.txt' 5

該当のソースコード

Python

1>>> import os 2>>> os.path.join("Users", "ユーザー名", "PC", "Documents", "sample.py", "Ch10") 3'Users\ユーザー名\PC\Documents\sample.py\Ch10' 4>>> with open("ch_10.txt", "r") as f: 5 print(f.read())

試したこと

カレントディレクトリを確認したところ

Python

1>>> import os 2>>> path = os.getcwd() 3>>> print(path) 4C:\Users\ユーザー名\AppData\Local\Programs\Python\Python38

このように全く違うところにいたので、カレントディレクトリを移動すればできるのではと思い、やってみたのですが以下のようにエラーが出てしまいました。

Python

1>>> os.chdir('/Users/ユーザー名/PC/Documents/sample.py/Ch10') 2Traceback (most recent call last): 3 File "<pyshell#6>", line 1, in <module> 4 os.chdir('/Users/ユーザー名/PC/Documents/sample.py/Ch10') 5FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: '/Users/ユーザー名/PC/Documents/sample.py/Ch10'

パスが見つからないということで、フォルダの存在を確認したら、存在しないということになっていました。自分なりに調べてみたのですが、これ以上どうしたらいいかわからず詰まってしまいました。

Python

1>>> os.path.exists('Ch10') 2False

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

そもそも該当のソースコードがおかしいのでしょうか?

そうですね。

os.path.joinは、「引数で指定されたパスを(適切な区切り文字で)接続したパスの文字列を生成する」関数で、カレントディレクトリ(カレントフォルダー)を変更する機能はありません。ついでに言うと、先頭が(「/」や「C:/」で始まらずに)「Users」なので、これは相対パスになっています。

あなたのコードのopenで読み込むファイル"ch_10.txt"は、このコードを実行したときのカレントディレクトリ(os.getcwdで確認できるディレクトリ)から探して、見つからなければエラーになります。

読み込むファイルのフルパスを生成してからopenに渡して、

Python

1workdir = "C:/Users/ユーザー名/PC/Documents/sample.py/Ch10" 2with oepn(os.path.join(workdir, "ch_10.txt"), "r") as f: 3 print(f.read())

とするか、openする前にカレントディレクトリを変更して、

Python

1os.chdir("C:/Users/ユーザー名/PC/Documents/sample.py/Ch10") 2with oepn("ch_10.txt", "r") as f: 3 print(f.read())

とすれば、ファイルを読み込めるのでは。

投稿2020/10/11 06:09

編集2020/10/11 06:11
Daregada

総合スコア11990

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

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

Brot

2020/10/11 07:15

回答ありがとうございます。提示してくださった方法どちらでも無事できました。大変助かりました。
guest

0

ファイル名をフルパスで指定してやればどうでしょう

投稿2020/10/11 04:51

y_waiwai

総合スコア87774

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

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

Brot

2020/10/11 05:19

回答ありがとうございます。 カレントディレクトリの移動はおっしゃった通りフルパスで指定することでできたのですが、該当のソースコードを試してみるとやはり同じようなエラーが出ます。そもそも該当のソースコードがおかしいのでしょうか?
y_waiwai

2020/10/11 07:06

指定したパスが見つからないと言ってるんですから、実際に存在するパスを指定してやりましょう
Brot

2020/10/11 07:15

無事できました。大変助かりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問