OSError の解決: [Errno 2] Python でそのようなファイルまたはディレクトリはありません
-
Python の
OSError: [Errno 2] No Such File or Directory
-
Python で
OSError: [Errno 2] No Such File or Directory
を解決する
Python でプログラムを実行すると、エラーに直面することがよくあります。 この記事では、Python の OSError: [Errno 2] No such file or directory
について説明します。
Python の OSError: [Errno 2] No Such File or Directory
このOSError: [Errno 2] No such file or directory
は、OS ライブラリによって生成されます。 このエラーは、アクセスしようとしているファイルまたはディレクトリが利用できない場合に発生します。
これは、2つの重要な理由により発生します。 開こうとしているファイルまたはフォルダーが存在しないか、そのファイルまたはフォルダーの間違ったパスを入力しています。
Python はこのエラーを発生させ、プログラムで参照されているファイルにアクセスしないとプログラムを実行できないことをユーザーに通知します。 Python バージョン 3 では、FileNotFoundError: [Errno 2] No such file or directory
が発生します。
このエラーは OSError
のサブクラスであり、このコードを Ubuntu OS で実行します。
コード例:
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
python mycode.py
を使用してスクリプトを実行すると、以下の出力が得られます。
出力:
#Python 3.x
Traceback (most recent call last):
File "mycode.py", line 3, in <module>
os.chdir(os.path.dirname(sys.argv[0]))
FileNotFoundError: [Errno 2] No such file or directory: ''
Python で OSError: [Errno 2] No Such File or Directory
を解決する
パスを指定しない場合、sys.argv[0]
は mycode.py
にアクセスし、os.path.dirname
はパスを特定できません。 次のスクリプトを実行して、コマンド python ./mycode.py
を使用してエラーを解決できます。
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
print("Hello")
出力:
#Python 3.x
Hello
このエラーを解決する別の方法は、上記のコードを次のように記述することです。 sys.argv[0]
は単なるスクリプト名でありディレクトリではないため、os.path.dirname()
は何も返しません。
それは、os.path.abspath()
を使用してディレクトリ名付きの正しい絶対パスに変換されます。 コマンド python mycode.py
を使用して次のコードを実行します。
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
print("Hello")
出力:
#Python 3.x
Hello
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません