我已经设置了一个脚本来使用Python中的urllib2下载mp3。在
url = 'example.com'
req2 = urllib2.Request(url)
response = urllib2.urlopen(req2)
#grab the data
data = response.read()
mp3Name = "song.mp3"
song = open(mp3Name, "w")
song.write(data) # was data2
song.close()
结果发现它与我在Windows上下载或者我当前的Python版本有关。我在我的Ubuntu发行版上测试了代码,下载的mp3文件非常好。。。所以我只使用了简单的urllib2.openurl
方法,它工作得很好!在
总结一下:
urllib2.openurl
。在有人知道是什么原因导致在我的Windows系统上运行代码的?我想知道为什么在Windows上下载会弄坏mp3?在
尝试二进制文件模式。
open(mp3Name, "wb")
你可能得到了行尾翻译。在文件是二进制的,是的。当打开一个文件时,可以将其设置为文本文件读取(这是默认设置)。当它这样做时,它将转换行尾以匹配平台。在Windows上,行尾是}。这种改变扰乱了数据流。在
\r\n
,在大多数其他地方它要么是\r
要么是{相关问题 更多 >
编程相关推荐