编辑 对于Python
3,使用
io.TextIOWrapper作为这个答案介绍是最好的选择。以下答案对于2.x可能仍然有用。我认为即使对于3.x,下面的任何内容实际上都不正确,但
io.TestIOWrapper仍然更好。
如果文件是utf-8,则可以使用:
# the rest of the pre as above, then:with zfile.open(name, 'rU') as readFile: line = readFile.readline().depre('utf8') # etc
如果您要遍历可以使用的文件
precs.iterdepre,则无法使用
readline()。
with zfile.open(name, 'rU') as readFile: for line in precs.iterdepre(readFile, 'utf8'): print line # etc
请注意,这两种方法对于多字节编码都不一定是安全的。例如,小尾数UTF-16用bytes表示换行符
b'x0Ax00'。一个寻找换行符的非Unipre感知工具将错误地将其拆分,从而在下一行保留空字节。在这种情况下,您必须使用不会尝试用换行符分隔输入的内容,例如
ZipFile.read,然后立即解码整个字节字符串。这不是utf-8的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)