gpt4 book ai didi

Python3 - urllib.request 权限被拒绝

转载 作者:太空狗 更新时间:2023-10-30 01:58:57 25 4
gpt4 key购买 nike

当我尝试使用 urllib.request.urlretrieve 函数在 python 3.3.2 中下载文件时,出现以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Python33\lib\site-packages\downloader.py", line 17, in startdownload
urllib.request.urlretrieve(url, file, reporthook)
File "C:\Python33\lib\urllib\request.py", line 191, in urlretrieve
tfp = open(filename, 'wb')
PermissionError: [Errno 13] Permission denied: '.\\tmp'

我正在尝试将文件保存在桌面上的目录 tmp 中。我在模块“downloader.py”中使用以下代码:

def download(url, file):
import urllib.request, tkinter, os, time
from tkinter import ttk

def reporthook(blocknum, blocksize, totalsize):
readsofar = blocknum*blocksize
percent = readsofar * 1e2 / totalsize
GUI.title(str(int(percent)) + "% done")
PROGRESS["value"] = percent
PROGRESS.update()
def startdownload():
BUTTON.destroy()
for y in range(70, 40, -1):
time.sleep(0.1)
GUI.geometry("500x"+str(y))
GUI.update()
urllib.request.urlretrieve(url, file, reporthook)
GUI.destroy()

GUI = tkinter.Tk()
GUI.resizable(0,0)
GUI.title("Click the download button to start downloading!")
GUI.geometry("500x70")
PROGRESS = ttk.Progressbar(GUI, length=480)
PROGRESS.place(x=10, y=10)
BUTTON = ttk.Button(GUI, text="start download", command=startdownload)
BUTTON.place(x=200, y=40)

GUI.mainloop()

我不知道如何给python下载文件的权限。还是代码有问题?

感谢您的帮助!

最佳答案

我用参数 '.\\tmp' 调用了我的函数,它是一个目录而不是单个文件。您需要为 urlretrieve 指定一个文件名才能正常工作:只要您的 tmp 文件夹中没有名为“data”的文件夹,就允许使用 '.\\tmp\\data'

或者,由于我尝试下载到一个临时文件夹,如果您不指定第二个参数,该文件将自动下载到您的系统特定的临时文件夹。可以在此处找到更多信息:https://docs.python.org/3.7/library/urllib.request.html#urllib.request.urlretrieve

关于Python3 - urllib.request 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com