您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python gzipped fileinput返回二进制字符串而不是文本字符串

5b51 2022/1/14 8:23:47 python 字数 1843 阅读 569 来源 www.jb51.cc/python

当我使用模块fileinput循环遍历一组gzip压缩文件的行时,如下所示:for line in fileinput.FileInput(files=gzipped_files,openhook=fileinput.hook_compressed): 那些行是字节字符串而不是文本字符串.当使用模块gzip时,可以通过使用'rt'而不是'rb'打开文件来防止

概述

当我使用模块fileinput循环遍历一组gzip压缩文件的行时,如下所示:

for line in fileinput.FileInput(files=gzipped_files,openhook=fileinput.hook_compressed):

那些行是字节字符串而不是文本字符串.

当使用模块gzip时,可以通过使用’rt’而不是’rb’打开文件来防止这种情况:http://bugs.python.org/issue13989

模块fileinput是否有类似的修复,所以我可以让它返回文本字符串而不是字节字符串?我尝试添加mode =’rt’,但后来我收到此错误

ValueError: FileInput opening mode must be one of 'r','rU','U' and 'rb'

import os

def hook_compressed_text(filename,mode,encoding='utf8'):
    ext = os.path.splitext(filename)[1]
    if ext == '.gz':
        import gzip
        return gzip.open(filename,mode + 't',encoding=encoding)
    elif ext == '.bz2':
        import bz2
        return bz2.open(filename,encoding=encoding)
    else:
        return open(filename,encoding=encoding)

总结

以上是编程之家为你收集整理的python gzipped fileinput返回二进制字符串而不是文本字符串全部内容,希望文章能够帮你解决python gzipped fileinput返回二进制字符串而不是文本字符串所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶