权限被拒绝:解决 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 returned”?的详细内容。更多信息请关注PHP中文网其他相关文章!