从网站将图像写入python中的文件

时间:2013-01-16 23:13:21

标签: python web.py

我写了这段代码:

class uploadfromfile:
    def POST(self, name=None):
            filename = ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for i in range(20))
            x = web.input(upfile={})
            f = open(filename, 'w')
            f.write(x['upfile'].value)
            f.close()
            imgFromFile(filename)
            return "some html"

但它不起作用。我得到一个巨大的错误,以此结束:UnicodeDecodeError:'utf8'编解码器无法解码位置15的字节0xff:无效的起始字节

错误似乎到达f.write(x ['upfile']。value),我不能为我的生活找出原因。出了什么问题?我知道该值在该变量中,因为如果我只是返回它,则图像显示在我的浏览器中。

1 个答案:

答案 0 :(得分:1)

我可以看到代码的第一件事是文件没有以二进制模式打开。在读写非简单字符串的文件时,需要二进制模式将数据视为字节。只需将文件打开方式切换到f = open(filename, 'wb')即可解决该问题。