権限が拒否されました: Python ファイル処理の「Errno 13」エラーを解決する
Python でファイルを操作するときに、「 PermissionError: [Errno 13] アクセス許可が拒否されました」例外。これは、現在のユーザー アカウントに必要な権限がないファイルにアクセスまたは変更しようとしたときに発生します。
説明した特定のケースでは、open() 関数を使用してファイルをダウンロードしようとしていますが、 「PermissionError」を受け取ります。これは、特定のファイルではなくフォルダーであるファイル パスを関数に提供しているためです。
この問題を解決するには、place_to_save 変数が有効なファイル パスを指していることを確認する必要があります。これを行うには、 isfile() 関数を使用して、パスがフォルダーではなくファイルを参照していることを確認します。
必要なチェックを含むコードの更新バージョンは次のとおりです。
import os def download(): # get selected line index index = films_list.curselection()[0] # get the line's text selected_text = films_list.get(index) directory = filedialog.askdirectory(parent=root, title="Choose where to save your movie") place_to_save = directory + '/' + selected_text # Verify that the path points to a file if not os.path.isfile(place_to_save): raise PermissionError("Permission denied: {}".format(place_to_save)) with open(place_to_save, 'wb') as file: connect.retrbinary('RETR ' + selected_text, file.write) tk.messagebox.showwarning('File downloaded', 'Your movie has been successfully downloaded!' '\nAnd saved where you asked us to save it!!')
このチェックを追加すると、常に有効なファイル パスを使用して作業することが保証され、「PermissionError」の発生を防ぐことができます。
以上がPython でファイルをダウンロードするときに「PermissionError: [Errno 13] Permission Deny」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。