私はPython(およびプログラミング全般)にかなり慣れていないため、インターネットからMIDIファイルを取得するプログラムを作成しているときに、いくつかの問題に遭遇しました。以下は、2 つの同一のファイルを書き込むと予想されるコードの一部です。
#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)
方法 1 では有効な midi ファイルが生成されますが、方法 2 では生成されません。16 進エディタで 2 つのファイルを比較したところ、無効なファイル (file_two) には、有効なファイルで発生した各「0A」の前に余分なバイト「0D」が挿入されていることがわかりました。他に違いがあるかどうかを確認するために、少しコピーして貼り付けて比較しましたが、何もポップアップしませんでした。ただし、私が見つけられなかった違いがもっとあった可能性があります。別の URL でも同じ問題が発生します。
私は困惑しています。どんな照明でも大歓迎です。
ありがとう。