作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用下面的代码片段在 linux (debian) 下从网上下载一张图片没有问题。当我在 Windows 中运行完全相同的代码时,生成的图像出现乱码。有什么问题?
import urllib, os
url = "http://www.crummy.com/software/BeautifulSoup/10.1.jpg"
contents = urllib.urlopen (url).read()
fn = os.path.join(os.path.expanduser("~"), "winimagetest")
fh = open(fn, "w");fh.write(contents);fh.close()
目标系统为Windows 7,64位,python安装为32位。 (这没关系,如果 python 是 64 位,也会出现同样的乱码输出)。
我上传的是乱码image :
最佳答案
对于 Windows,您需要以二进制模式打开文件,因为 Windows 区分二进制文件和文本文件。它按原样在 Linux 上运行,因为 Linux 没有这种区别。
换行
fh = open(fn, "w")
到
fh = open(fn, "wb")
您可能还需要考虑执行以下操作:
with open(fn, "wb") as fh:
fh.write(contents)
因为它会在任何类型的异常情况下为您处理关闭文件。
关于python - urllib在windows下输出乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20293369/
我是一名优秀的程序员,十分优秀!