【问题标题】:Unexpected end of archive存档意外结束
【发布时间】:2011-01-03 15:25:46
【问题描述】:

您好,我对编程很陌生,但我遇到了 Python 挑战赛的问题;我已经删除了确切的网址,希望避免任何严重的剧透。

无论如何,我的问题是我在运行以下代码后试图在 WinRAR 中打开我创建的文件,它告诉我文件有“意外的存档结束”。当然,为了以防万一,我尝试了几次重新运行我的代码,但仍然没有运气。

我还用我的浏览器从同一个 url 抓取了文件,以确保文件本身没有损坏,并且打开它没有任何错误,所以我很难过。我想我错过了这个过程的一些基本要素?

提前感谢您的帮助!

import urllib

url = "http://www.pythonchallenge.com/pc/def/xxxxxxx.zip"
site = urllib.urlopen(url)

newfile = open(url.split('/')[-1],'w')    

newfile.write(site.read())

site.close()
newfile.close()

【问题讨论】:

标签: python zip urllib


【解决方案1】:

我猜你是在 Windows 机器上。 (主要是因为“WinRAR”)

newfile = open(url.split('/')[-1],'w')

'w' 打开文件进行写入,但处于“文本”模式。在文本模式下,某些操作系统(如 Windows)将 '\n' 转换为其他内容(在 Window 中为 '\r\n')。为了避免这种翻译,以二进制模式打开文件'b',写'w':'wb'

这些字母源自fopenSee the manual page for fopen,因为我觉得它对标志的描述比Python docs 更好。 (但请注意,Python 为标志添加了一些内容。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多