How can I fix urllib.error.URLError: <urlopen error unknown url type: c>?
How can I fix urllib.error.URLError: <urlopen error unknown url type: c>?
我正在尝试制作一个下载文件的脚本,但在我执行类似 download.py https://i.stack.imgur.com/tFuiz.png
的操作后它一直收到错误 urllib.error.URLError: <urlopen error unknown url type: c>
这是我的脚本:
import os
import wget
import sys
url = sys.argv[0]
directory = os.path.expanduser('~')
downloadFolderPath = r"%s\Downloads" % directory
os.chdir(downloadFolderPath)
url.replace(":", "%3A")
wget.download(url)
有什么办法可以解决这个问题吗?
import os
import wget
import sys
url = sys.argv[1]
directory = os.path.expanduser('~')
downloadFolderPath = os.path.join(directory, "Downloads")
os.chdir(downloadFolderPath)
url.replace(":", "%3A")
wget.download(url)
问题是您将第一个参数用作 url。 argv[0]
是脚本名称,而不是您作为参数传递的 url。参见:sys.argv documentation:
The list of command line arguments passed to a Python script. argv[0]
is the script name (it is operating system dependent whether this is a
full pathname or not).
很可能您收到错误是因为您使用的是 Windows 并且第一个参数是完整路径名,例如c:\scripts\download.py
之类的。
如果将其更改为 sys.argv[1]
并使用
调用脚本
python download.py https://i.stack.imgur.com/tFuiz.png
(将 download.py
替换为您的脚本名称)然后它应该可以工作。
注:我也改了downloadFolderPath
。通过使用 os.path.join()
脚本应该独立于操作系统工作。例如,在 Ubuntu 上,由于路径中的反斜杠,您的版本将无法运行。
当您启动命令 download.py https://i.stack.imgur.com/tFuiz.png
时,sys.argv[0]
接收值 download.py
而 sys.argv[1]
接收值 https://i.stack.imgur.com/tFuiz.png
,因此您应该使用 argv[ 1] 而不是 argv[0]
我正在尝试制作一个下载文件的脚本,但在我执行类似 download.py https://i.stack.imgur.com/tFuiz.png
的操作后它一直收到错误 urllib.error.URLError: <urlopen error unknown url type: c>
这是我的脚本:
import os
import wget
import sys
url = sys.argv[0]
directory = os.path.expanduser('~')
downloadFolderPath = r"%s\Downloads" % directory
os.chdir(downloadFolderPath)
url.replace(":", "%3A")
wget.download(url)
有什么办法可以解决这个问题吗?
import os
import wget
import sys
url = sys.argv[1]
directory = os.path.expanduser('~')
downloadFolderPath = os.path.join(directory, "Downloads")
os.chdir(downloadFolderPath)
url.replace(":", "%3A")
wget.download(url)
问题是您将第一个参数用作 url。 argv[0]
是脚本名称,而不是您作为参数传递的 url。参见:sys.argv documentation:
The list of command line arguments passed to a Python script. argv[0] is the script name (it is operating system dependent whether this is a full pathname or not).
很可能您收到错误是因为您使用的是 Windows 并且第一个参数是完整路径名,例如c:\scripts\download.py
之类的。
如果将其更改为 sys.argv[1]
并使用
python download.py https://i.stack.imgur.com/tFuiz.png
(将 download.py
替换为您的脚本名称)然后它应该可以工作。
注:我也改了downloadFolderPath
。通过使用 os.path.join()
脚本应该独立于操作系统工作。例如,在 Ubuntu 上,由于路径中的反斜杠,您的版本将无法运行。
当您启动命令 download.py https://i.stack.imgur.com/tFuiz.png
时,sys.argv[0]
接收值 download.py
而 sys.argv[1]
接收值 https://i.stack.imgur.com/tFuiz.png
,因此您应该使用 argv[ 1] 而不是 argv[0]