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

时间:2014-08-01 16:38:15

标签: python url dictionary get typeerror

我正在尝试从在线的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)

但是当我执行脚本并输入in1(文件名)时,我得到错误“TypeError:urlretrieve()得到一个意外的关键字参数'文件名',我反复检查但我不知道错误 希望有人帮忙,我是python的新手所以请不要这么难 “

1 个答案:

答案 0 :(得分:0)

关键字为小写f,'文件名'不是文件名。 filename = uri

错误的方式:

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 filenameFilename而非filename

Filename是关键字arg,您不能使用{{1}},因为它不是有效的关键字参数。