File upload 在Python3.x中以utf-8的形式上载文件

File upload 在Python3.x中以utf-8的形式上载文件,file-upload,utf-8,python-3.x,File Upload,Utf 8,Python 3.x,我正试图上传一个utf-8编码的文件。在Python2.x中,我使用了如下内容: lines=filearg.file.readlines() 在Python3.2中,获取字节流的迭代器。我想你可以做一些事情,比如: lines=[filearg.file.readlines()中的行的[line.decode()] 我想知道是否有更简单的方法。对于常规文件,我只写: 将open(path)作为f:##utf-8是默认值 行=列表[f.readlines()] 我得到了我的utf-8

我正试图上传一个utf-8编码的文件。在Python2.x中,我使用了如下内容:


lines=filearg.file.readlines()

在Python3.2中,获取字节流的迭代器。我想你可以做一些事情,比如:


lines=[filearg.file.readlines()中的行的[line.decode()]

我想知道是否有更简单的方法。对于常规文件,我只写:


将open(path)作为f:##utf-8是默认值
行=列表[f.readlines()]

我得到了我的utf-8字符串列表

--tsf

如果没有更多信息(您使用的是什么框架?),我们不知道是否有一种简洁的方法可以做到这一点。但通常:

HTTP通信是基于字节的:不一定指定编码,如果指定了,则可能不正确。因此,给您字节并让您确定如何处理它们是有意义的。如果您想要类似对象的文本文件,可以使用:


python2.x中使用的类似方法是:

import codecs
with codecs.open(path, encoding='utf-8') as f:
    lines = [l for l in f]

你可以在python3.x中试用它。你说的“上传”是什么意思?filearg的类型是什么?我正在使用CherryPy运行一个小型Web应用程序。它的用户可以上传他们的文件:filearg是他们在应用程序页面上填写的文件参数。
import codecs
with codecs.open(path, encoding='utf-8') as f:
    lines = [l for l in f]