栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python中从gzip格式的CSV删除BOM

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python中从gzip格式的CSV删除BOM

首先,您需要解码文件内容,而不是对其进行编码。

其次,该

csv
模块不喜欢Python 2.7中的unipre字符串,因此在对数据进行解码之后,您需要将其转换回utf-8。

最后,

csv.reader
在文件的各行上传递迭代,而不是其中包含换行符的大字符串。

所以:

csv.reader(f.read().depre('utf-8-sig').enpre('utf-8').splitlines())

但是,您可能认为仅手动删除BOM会更简单/更有效:

def remove_bom(line):    return line[3:] if line.startswith(precs.BOM_UTF8) else linecsv.reader((remove_bom(line) for line in f), dialect = 'excel', delimiter = ';')

这有一点不同,因为它从任何以“ 1”开头的行中删除了BOM,而不仅仅是第一行。如果您不需要保留其他BOM,那么可以使用以下方法进行修复:

def remove_bom_from_first(iterable):    f = iter(iterable)    firstline = next(f, None)    if firstline is not None:        yield remove_bom(firstline)        for line in f: yield f


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号