我从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
答案 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'
另外,为什么要尝试将/
放入文件名?哪个操作系统可以正常工作?我很确定你不能,而且你真的不想。