ホームページ >バックエンド開発 >Python チュートリアル >Python でファイルをダウンロードするときに「PermissionError: [Errno 13] Permission Deny」を修正する方法?

Python でファイルをダウンロードするときに「PermissionError: [Errno 13] Permission Deny」を修正する方法?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 20:47:13260ブラウズ

How to Fix the

権限が拒否されました: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。