出现错误 TypeError: urlretrieve() 得到一个意外的关键字参数 'CablingFilename' python

1 投票
1 回答
1785 浏览
提问于 2025-04-18 15:40

我正在尝试从一个在线的txt文件中创建一个列表,这段代码的一部分是:

import urllib

def Dict(Filename,var1,var2):
    FileDict = open(Filename,'r')

    List = []
    for l in FileDict:
        if D in l:
            pattern = re.split('W',l)
            List.append(pattern[4])

更多代码...

    return (thing1,thing2,List)

in1=raw_input("name of file \n >")
url='https.page_address'

in2=raw_input("other instructions")
in3=raw_input("other instructions2")
urllib.urlretrieve(url+in1, Filename = in1)

MyDict = Dict(in1,in2,in3)

但是当我运行这个脚本并输入文件名时,我遇到了一个错误:“TypeError: urlretrieve() 收到了一个意外的关键字参数 'Filename'”。我检查了很多遍,但还是不知道哪里出错了。希望有人能帮我,我刚开始学Python,请不要太苛刻。

1 个回答

0

关键字是小写的 f,也就是 'filename' 而不是 Filename。

错误的写法:

In [56]: import urllib

In [57]: in1 = "foo"

In [58]: urllib.urlretrieve("http://goo.gl/xymu6o",Filename=uri)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-58-e89982cacc95> in <module>()
----> 1 urllib.urlretrieve("http://goo.gl/xymu6o",Filename=in1)

TypeError: urlretrieve() got an unexpected keyword argument 'Filename'

正确的写法:

In [59]: import urllib

In [60]: 

In [60]: in1 = "foo"

In [61]: urllib.urlretrieve("http://goo.gl/xymu6o",filename=in1 )
Out[61]: ('foo', <httplib.HTTPMessage instance at 0x7fb580d57680>)

只需要改成 urllib.urlretrieve(url+in1, filename = in1)

或者 urllib.urlretrieve(url+in1, in1)

从文档的描述中你可以看到:

urllib.urlretrieve(url[, filename[, reporthook[, data]]])

你需要传入 url,这是必须的,filename 不是 Filename

filename 是一个关键字参数,你不能用 Filename,因为它根本不是一个有效的关键字参数。

撰写回答