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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

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

Python

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

Q&A

解決済

3回答

394閲覧

同一フォルダ内に存在するのにFileNotFoundError

YUITIGER

総合スコア13

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/06/07 03:46

前提・実現したいこと

テキストファイルを読み込み、テキストファイルを表示したい。

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

python学習およびプログラミング言語学習をはじめて間もない初心者です。

free.pyで、同一フォルダ内にあるx.txtを読み込み、表示したいのですが、free.pyを実行すると以下のようなエラーメッセージが表示されてしまいます。

Traceback (most recent call last): File "C:\Users\ユーザー名\Desktop\py\reader\free.py", line 1, in <module> xfile=open("x.txt",encoding="utf-8") FileNotFoundError: [Errno 2] No such file or directory: 'x.txt'

free.pyとx.txtは画面のように同一フォルダに配置しています。
イメージ説明

該当のソースコード

free.pyは以下のようにコーディングしました。

xfile=open("x.txt",encoding="utf-8") a=xfile.read() xfile.close() print(a)

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

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

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

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

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

quickquip

2019/06/07 03:50

どうやって実行していますか?
YUITIGER

2019/06/07 03:55

ご回答ありがとうございます。 free.pyファイルをコマンドプロンプトにドラッグして実行しています。
LouiS0616

2019/06/07 03:58

コマンドプロンプトの > の左側にはどのように表示されていますか? ユーザ名は **** などで伏せて構いません。
can110

2019/06/07 03:58

コマンドプロンプトのカレントディレクトリはどこになっていますか? =プロンプトにはどのように表示されていますか? (「c:\windows\system32>」など)
YUITIGER

2019/06/07 04:00

ご回答ありがとうございます。 C:\Users\ユーザー名>です。
guest

回答3

0

ベストアンサー

C:\Users\ユーザー名>です。

./Desktop/py/reader/x.txt ならとおるかと。
単に x.txt と書いた場合、カレントディレクトリの x.txt を探してしまいます。


ファイルを開く際は、with文の利用をお勧めします。
リソースの閉じ忘れを防げるほか、例外が発生するような場合でも頑健です。

投稿2019/06/07 04:03

編集2019/06/07 04:36
LouiS0616

総合スコア35660

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

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

YUITIGER

2019/06/07 04:09

ご回答ありがとうございます。 教えて頂いた通りに実行したら解決しました。ありがとうございました。 今回の場合、コマンドプロンプトから実行していたために、free.pyがユーザー名のディレクトリからx.txtを探してしまった、ということでしょうか。 後学のために教えて頂けると幸いです。
LouiS0616

2019/06/07 04:13 編集

はい。C:\Users\ユーザ名に x.txt を置けば動作します。 --- あるいは、cdでカレントディレクトリを移動してからコードを実行すれば良いです。 こんな感じのイメージです。 C:\Users\ユーザ名 > cd Desktop\py\reader C:\Users\ユーザ名\Desktop\py\reader > python free.py この場合、単に x.txt と書いても動作してくれます。 CUIを介するので最初はとっつきにくいかもしれないですが、慣れればこちらの方が柔軟でしょう。
YUITIGER

2019/06/07 04:18

すごく丁寧に教えて頂きありがとうございます。 とても理解しやすかったです。
LouiS0616

2019/06/07 04:22

絶対パスと相対パスについて調べてみると勉強になると思います。
guest

0

./x.txtで指定してみては?

投稿2019/06/07 03:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

YUITIGER

2019/06/07 03:54

コメントありがとうございます。 ご回答していただいたように訂正実行してみましたが、やはり以下のようにFileNotFoundErrorになってしまいました。 Traceback (most recent call last): File "C:\Users\ユーザー名\Desktop\py\free.py", line 1, in <module> xfile=open("./x.txt",encoding="utf-8") FileNotFoundError: [Errno 2] No such file or directory: './x.txt'
LouiS0616

2019/06/07 04:00

@yoshi0819 さん x.txt だとダメで ./x.txt ならとおるような場合があるのでしょうか?後学のため教えて下さい。
退会済みユーザー

退会済みユーザー

2019/06/07 05:14 編集

失敬。動作が変わるのはphpでした。回答するときに勝手に脳内変換してました。
guest

0

まずは、カレントディレクトリがどこか、そのコード上から調べてみてはどうでしょう

そして、コードのあるディレクトリを取得して、それをカレントディレクトリに設定するようにコードを組めばよろしいかと

投稿2019/06/07 04:09

y_waiwai

総合スコア87749

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

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

YUITIGER

2019/06/07 04:18

ご回答ありがとうございます。 助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問