嘿那里,我对编程很新,我遇到了Python Challenge的问题;我已经删除了确切的网址,希望避免任何沉重的剧透。
无论如何,我的问题是我在运行以下代码后尝试在WinRAR中打开我创建的文件,它告诉我文件有“意外的归档结束”。我自然会尝试重新运行我的代码几次以防万一,但仍然没有运气。
我还使用我的浏览器从同一个网址抓取文件,以确保文件本身没有损坏,并打开它没有任何错误,所以我很难过。我想我错过了这个过程的一些基本要素?
我提前感谢您的帮助!
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()
答案 0 :(得分:3)
我猜你是在Windows机器上。 (主要是由于“WinRAR”)
newfile = open(url.split('/')[-1],'w')
'w'
打开要写入的文件,但是在“文本”模式下。在文本模式下,某些操作系统(如Windows)将'\n'
转换为其他内容(在Window的情况下为'\r\n'
。)。要避免此转换,请以二进制模式'b'
打开文件,并写入'w'
:'wb'
这些字母来自fopen
。 See the manual page for fopen
,因为我觉得它比Python docs有更好的标志描述。 (但请注意,Python会在标志中添加一些内容。)