我对python中的wget模块有问题



有人能解决我的代码吗?我太穷了此外,如果你告诉我如何在不必为每种文件类型创建不同函数的情况下更有效地完成这项工作,我将非常高兴。

(你可以把这个代码想象成一个研究设施的终端,这个研究设施存在于20世纪90年代,当时互联网还不好,所以我想放慢下载速度,让它感觉真的是90年代。(

import wget
x = ""
def png_download():
print("this code is can only download png btw")
time.sleep(1)

print("enter url")
command = input('Terminal: ').strip()
command = x


# file url
remote_url = ("'"+x+"'")

# 
local_file = 'file.png'

# aksiyon
wget.download(remote_url, local_file)
while True: #Terminal
print ("")
command = input('Terminal: ').strip()
if command == 'Download_png':
png_download()

else:
print("")   

如果我运行代码并输入url,就会发生这种情况:

File "c:DosyalarYazılımPythonFoundation Terminal 14Terminal Downloader Extension ENG .py", line 28, in <module>
png_download()
File "c:DosyalarYazılımPythonFoundation Terminal 14Terminal Downloader Extension ENG .py", line 22, in png_download
wget.download(remote_url, local_file)
File "C:UsershpAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packageswget.py", line 526, in download
(tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 239, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 214, in urlopen
return opener.open(url, data, timeout)
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 501, in open
req = Request(fullurl, data)
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 320, in __init__
self.full_url = url
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 346, in full_url
self._parse()
File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0liburllibrequest.py", line 375, in _parse
raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: '%27%27' ```

使用Python下载文件有一种更简单的方法:

import os
import requests
def download_file_to(file_url, destination_folder, new_file_name=None):
if new_file_name:
file_name = new_file_name
else:
file_name = file_url.split("/")[-1]
r = requests.get(file_url)
file_path = os.path.join(destination_folder, file_name)
with open(file_path, "wb") as code:
code.write(r.content)

此方法将从web(使用requests库(将任何文件下载到您指定的文件夹中,如果愿意,您可以重命名该文件。

ValueError:未知url类型:'%27%27'``

27'字符的(十六进制(代码,这意味着您为wget.download提供的第一个参数只是'',这显然不是合法地址。这是因为您将x设置为空字符串(x = ""(,但没有任何地方更改它,然后进行

remote_url = ("'"+x+"'")

wget.download(remote_url, local_file)

假设用户总是提供合法的URL,那么您的png_download应该更改为

def png_download():
print("this code is can only download png btw")
time.sleep(1)

print("enter url")
remote_url = input('Terminal: ').strip()
# 
local_file = 'file.png'

# aksiyon
wget.download(remote_url, local_file)

最新更新