首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传和编码.xls文件Python Web.py

上传和编码.xls文件Python Web.py
EN

Stack Overflow用户
提问于 2014-02-04 20:02:09
回答 1查看 537关注 0票数 0

我正在尝试创建一个web应用程序,允许用户上传一个.xls文件,然后将该uploaded.xls文件输入到我的程序中,该程序读取并解析该文件。我目前正在Web.py框架上使用Python2.7。

但是,我对Excel文件的utf-8编码有问题.这个方法似乎只适用于.txt & .csv文件,但是当我尝试图片或.pdf时,它们不起作用,所以我不确定库中内置的web.py是否只是不支持web.py文件。当我上传一个Excel文件时,它只会发出不可读的内容,如下所示:

♠☺☻☺☻╒═╒▲.←►+,∙0░☺H↨P♂X♀☻Σ♦♥♫♂♂♂♂▲►☺▲♂工作表♥☺

这是我的代码:

代码语言:javascript
复制
 class index:
    def POST(self):
        x = web.input(calendar_file={}, ref_id='')
        if x:
            ref_id = (x.ref_id if x.ref_id else "")
            filepath=x.calendar_file.filename # replaces the windows-style slashes with linux ones.
            fn=filepath.split('/')[-1] # splits the and chooses the last part (the filename
            filename = "%s/Users/jl98567/Documents/xMatters_calendar_app/test/" + fn
            fullpath = os.path.join('c:', filename % (ref_id))
            content = x["calendar_file"].file.read()
            with open(fullpath, 'w') as f_out:
                if not f_out:
                    raise Exception("Unable to open %s for writing. " % (fullpath))
                f_out.write(content)
        print x['calendar_file'].value
        raise web.seeother('/upload?ref_id=%s&filename=%s' % (ref_id, filename))

现在,当我试图编码:

代码语言:javascript
复制
print x['calendar_file'].value.encode('utf-8')

我得到以下错误:

at / 'ascii‘编解码器无法解码0位置的字节0xd0 :序数不在范围内(128)

奇怪的是,我知道将其编码为utf-8可以在我的应用程序上工作,该应用程序不是基于web的,也不是使用web.py文件上传方法的。所以我似乎看不出这里有什么问题。

例如:

代码语言:javascript
复制
content = str(sheet.cell(row,0).value.encode('utf8'))

使用xlrd和xlwt python方法可以很好地工作。

有什么建议吗?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-06-05 21:26:16

代码语言:javascript
复制
    print unicode(x['calendar_file'].value, 'utf-8')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21562204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档