【问题标题】:Downloading media files using Dropbox python api使用 Dropbox python api 下载媒体文件
【发布时间】:2013-03-02 18:33:29
【问题描述】:

我正在尝试使用 python api 从 Dropbox 下载文件。 我所做的与他们在“入门”页面上所说的完全相同https://www.dropbox.com/developers/core/files#python .它适用于简单的文本文件,但在用于媒体文件(如 .mp3 或 .jpg)时会下载损坏的文件。 是否有我遗漏的东西,或者下载文件的不同方法? 谢谢, 盖兹勒

【问题讨论】:

  • 有没有可能比较原始文件和下载文件,看看有什么不同?可能会提供重要线索。
  • 我可以比较原始 mp3 和使用十六进制编辑器从 dropbox-api 下载的那个,但这并没有给我关于问题的线索
  • 你是说你做了这个比较并且没有明显的差异模式吗?
  • 存在差异,但是当我不知道这些差异意味着什么时,这仍然不能帮助我找到问题。这是两个文件:dropbox.com/s/rrly2tdf0mf866z/%28Original%29.mp3?mdropbox.com/s/9c6ulgpj7lwl64j/…
  • 对不起,我手边没有像样的二进制差异实用程序。寻找诸如反转字节顺序、更改行尾字符、剥离高位等内容,这取决于您找到的内容,这将提供有关问题所在的线索。除非以某种方式出现未纠正的传输错误,否则您可能会遇到某种软件或配置错误 IMO。

标签: python api python-2.7 dropbox dropbox-api


【解决方案1】:

Dropbox 页面上的示例未针对 MP3 或 JPG 等二进制文件进行优化。您应该将out = open('magnum-opus.txt', 'w') 替换为out = open('magnum-opus.txt', 'wb')

Python documentation on the open built-in

默认使用文本模式,它可以在写入时将“\n”字符转换为特定于平台的表示形式,并在读取时返回。因此,在打开二进制文件时,应在模式值后面加上“b”,以二进制模式打开文件,这将提高可移植性。 (即使在不区别对待二进制文件和文本文件的系统上,附加 'b' 也很有用,它用作文档。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多