Python变量没有传递给urllib

时间:2014-07-06 12:24:09

标签: python urllib

我从opendata网站抓取csv文件,我想使用文件的URL作为文件的名称,但是当我在字符串中添加前缀以确保完整的URL时被放入文件名。但是,修改后的变量不会被urllib复制,文件保存时没有前缀。

当我在使用urllib之前打印变量时,我得到包含前缀的完整变量,所以我知道我的'替换'生产线正在运作。

这是我的代码,任何人都可以看到我做错了吗?

# add the right prefix onto the url
csvUrl = csvUrl.replace("/government","http://www.gov.uk/government")
print csvUrl

# check that the file hasn't already been downloaded
if csvUrl in fileList:
    print "found this file already: "+ csvUrl
else:
    # Download the file
    urllib.urlretrieve(csvUrl, os.path.basename(csvUrl))
    print "saving: "+ csvUrl

1 个答案:

答案 0 :(得分:0)

os.path.basename(/foo/http://www.gov.uk/government)将返回government,因为这是基本名称。 basename假定您为其提供了文件的路径,而不是包含/个字符的文件名。

>>> csvUrl = 'foo/government'
>>> csvUrl = csvUrl.replace("/government","http://www.gov.uk/government")
>>> csvUrl
'foohttp://www.gov.uk/government'
>>> os.path.basename(csvUrl)
'government'

另外,为什么要尝试将/放入文件名?哪个操作系统可以正常工作?我很确定你不能,而且你真的不想。