1

我对python相当陌生,(和一般的编程),我在编写一个从互联网上获取midi文件的程序时遇到了一些麻烦。下面是一些我希望编写两个相同文件的代码:

#method one
url = "http://.../asfd.mid"
urllib.urlretrieve(url, "C:\...\this_is_file_one.mid")

#method two
g = urllib2.urlopen(url).read()
open("this_is_file_two.mid", "w").write(g)

方法一产生一个有效的midi 文件,而方法二没有。当我在十六进制编辑器中比较这两个文件时,我发现无效文件 (file_two) 在有效文件中出现的每个“0A”之前插入了一个额外的字节“0D”。我做了一些复制粘贴比较,看看是否有任何其他差异,但没有弹出。不过,很容易有更多我没有发现的差异。同样的问题发生在不同的网址上。

我难住了。任何照明将不胜感激。

谢谢。

4

1 回答 1

4

urllib.urlretrieve()打开文件以二进制模式保存。

open("this_is_file_two.mid", "wb").write(g)
于 2011-07-06T05:46:58.623 回答