为什么不同的下载方式导致不同的显示?

时间:2014-03-11 14:05:15

标签: python

当我用我的Firefox下载网上的文件时,
http://quotes.money.163.com/service/lrb_000559.html
它在我的EXCEL看起来很好。

enter image description here

当我用我的python代码下载文件时,

from urllib.request import urlopen
url="http://quotes.money.163.com/service/lrb_000559.html"
html=urlopen(url)       
outfile=open("g:\\000559.csv","w")
outfile.write(html.read().decode("gbk"))
outfile.close()

它看起来很难,当我用我的EXCEL打开它时,有一行填充了适当的内容,一行填充了空白,你可以在你的电脑上试试。
为什么不同的下载方式会导致不同的显示?

enter image description here

2 个答案:

答案 0 :(得分:1)

我的猜测是在python中解码和写入结果时会改变行结尾。请尝试使用二进制文件。在我的头脑中,我认为它会是这样的:

outfile=open("g:\\000559.csv","wb")
outfile.write(html.read())

答案 1 :(得分:0)

在打开的文件中添加“b”标志,即更改此内容:

outfile=open("g:\\000559.csv","w")

对此:

outfile=open("g:\\000559.csv","wb")

解释here。原始文件有\r\n,Python正在将\n转换为\r\n,这意味着您在每行(\r\r\n)的末尾都有一个额外的回车符。< / p>