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

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

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

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

Q&A

解決済

2回答

2130閲覧

参照先ディレクトリの指定方法に関するご質問

yukicb

総合スコア21

Python

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

0グッド

0クリップ

投稿2020/03/15 06:39

前提・実現したいこと

ファイルの読み込みを行う際に、処理自体はこちら「/Users/name/Desktop/python/path.py」のディレクトリで行っているのですが、下記エラーメッセージが表示され、参照するデータ("texttext.txt")を「/Users/name」のディレクトリに格納をすると無事に処理ができる状況となっています。
上記、実際に実行しているディレクトリ(上記の場合、「/Users/name/Desktop/python/path.py」)での読み込みをデフォルトで行うようにするには、どのような設定を行えば良いのでしょうか。

お分かりであれば、ご教示いただけますと幸いです。

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

FileNotFoundError: [Errno 2] No such file or directory: 'texttext.txt'

該当のソースコード

Python

1with open("texttext.txt") as f: 2 print(f.read())

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

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

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

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

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

guest

回答2

0

ベストアンサー

相対パス指定の起点を、カレントディレクトリと言います。あなたの実行の仕方の場合、プログラム起動時のカレントディレクトリは/Users/nameなのでしょう。
"texttext.txt"とだけ書くと、カレントディレクトリにあるtexttext.txtを意味します。

案1:

Python

1os.chdir(os.path.dirname(__file__)) 2with open("texttext.txt") as f:

して、カレントディレクトリを/Users/nameから、実行中のPythonファイル(__file__)のある/Users/name/Desktop/python/に変更する。

案2:

Python

1with open(os.path.join(os.path.dirname(__file__),"texttext.txt")) as f:

ファイル名を作り上げる。

案1の場合は、プログラム中のすべての相対パス指定の起点が変更されます。
案2の場合は、起点は/Users/nameのままです。

投稿2020/03/15 06:55

otn

総合スコア85901

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

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

yukicb

2020/03/15 10:18

上記にて処理することができました! 非常に丁寧にまとめていただき、勉強になりました!????‍♂️ ありがとうございました!
guest

0

カレントディレクトリの設定を /Users/name/Desktop/python/ にすればいいです

投稿2020/03/15 06:45

y_waiwai

総合スコア88042

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

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

yukicb

2020/03/15 10:20

ご回答ありがとうございます! こちらでも処理は可能だったのですが、非常に分かりやすくまとめていただいているご回答だったことも踏まえ、上記「otn」さんをベストアンサーにさせていただきました。 申し訳ありませんが、引き続き宜しくお願い致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問