今日コードを書きました。当初は現在のファイルの上にある 3 つのディレクトリを取得したかったのですが、エラーが返されました
import osimport sysprint(__file__)# 得到上上层目录的路径之后,加入到默认的环境变量中BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) sys.path.append(BASE_DIR)print("******", BASE_DIR) 输出结果:<encoding error> ******
その後、スタック オーバーフローで次のステートメントを見つけました
上記は、大まかに dirname とbasename を意味します。パスを分割するときに現在のパスが考慮されないため、次の変更を加える必要がありますが、以前に作成したプログラムは同じコードを使用しており、実行できます。これでは混乱しますが、問題は確かに解決されています。心優しいネチズンなら具体的な理由を知っているので、下のコメント欄でアドバイスをお願いします
コードを変更してください: __file__ を os.path.abspath(__file___) に変更してください
import osimport sysprint(os.path.abspath(__file__)) # 得到上上层目录的路径之后,加入到默认的环境变量中BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.append(BASE_DIR)print("******", BASE_DIR)
以上がPython を作成するときに発生したエラーを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。