在Windows中使用Python下载Mp3会破坏这首歌,但是在Linux中却不会

2024-10-01 07:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经设置了一个脚本来使用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方法,它工作得很好!在

总结一下:

  • 我在一个Ubuntu发行版上使用Python中的urllib2.openurl。在
  • 我正在使用一个更新版本的Python,但我觉得它不可能是那样的。在
  • mp3是用LAME编码的。在

有人知道是什么原因导致在我的Windows系统上运行代码的?我想知道为什么在Windows上下载会弄坏mp3?在


Tags: 代码版本脚本urldatasongexampleresponse
1条回答
网友
1楼 · 发布于 2024-10-01 07:38:48

尝试二进制文件模式。open(mp3Name, "wb") 你可能得到了行尾翻译。在

文件是二进制的,是的。当打开一个文件时,可以将其设置为文本文件读取(这是默认设置)。当它这样做时,它将转换行尾以匹配平台。在Windows上,行尾是\r\n,在大多数其他地方它要么是\r要么是{}。这种改变扰乱了数据流。在

相关问题 更多 >