乌里布。使用变量作为文件名时,urlretrieve返回损坏的文件

下面的代码有两次对urllib.urlRetrive的调用,第一次使用字符串作为文件名。很好用。第二个命令返回相同的文件名,但文件已损坏。
导入urllib
导入操作系统
Url='https://s3.amazonaws.com/MobiFlexImages/app@axikit.com/splogolawyer.png'
#文件名为字符串的下载
Urllib.urlRetrive(url,"Splogolawyer.png")
#效果很好
#将字符串解压缩为url和文件名下载
#PNG文件已损坏
Url,文件名=os.path.split('https://s3.amazonaws.com/MobiFlexImages/app@axikit.com/splogolawyer.png')
Urllib.url检索(url,文件名)
打印尾部
打印头

# 回答1


我建议你在两次下载之前打印"url",并对它们进行比较。
# 回答2


谢谢。我想我是在挑EOL这个角色。
# 回答3


是的。
Line=line.rstrie("\r\n")
成功了。
# 回答4


第一个URL是URL='https://s3.amazonaws.com/MobiFlexImages/app@axikit.com/splogolawyer.png'
第二个是URL='https://s3.amazonaws.com/MobiFlexImages/app@axikit.com'
# 回答5


谢谢。我知道呀。这只是个测试,看看我能不能下载文件。原来我的问题是我把文件名去掉了。因此,该URL没有任何可下载的内容,并且创建的文件为空。
我试图解决的实际问题是读取一个文本文件,其中包含一个带有文件名的URL列表,然后下载所有这些文件。以下是实际工作的代码:(请注意,我在获取文件名之前保存了完整的URL)
导入urllib
导入操作系统
F=OPEN('AxikitSponsor-s3only.txt')
对于ITER(F)中的行:
Line=line.rstrie("\r\n")
Url,filename=os.path.plit(行)
Urllib.urlRetrive(行,文件名)
打印"已下载:",行,"",文件名
F.Close()
# 回答6


您并没有说您正在从一个文件中读取数据,这显然很重要,但无论如何,只要使用strip()就可以了,因为它会去掉"\r"、"\n"、制表符、空格等,所以如果有任何前导空格或尾随空格,它就会删除所有空格,除非您当然只想删除一个内容。

选择 | 换行 | 行号
  1. line=line.strip()

标签: python

添加新评论