在csv python中检测奇怪的字符

时间:2019-03-18 09:21:12

标签: python csv encoding

我有一个包含一百万行左右的CSV文件,其中一些行与某些字符混合在一起(这意味着该行可以读取,但与鲍尼混合在一起):

ªïÜܵ+>&\ôowó¨ñø4(½;!|Nòdd¼Õõ¿¨W[¦¡¿p\,¶êÕMÜÙ;!ÂeãYÃ3S®´øÂÃ

输入文件为ISO-8859-1,每行过滤并写入utf-8新文件中。

可以过滤掉吗?以及如何?

这是它的样子(整行)

Foo;Bar;24/01/2019-13:06;24/01/2019-12:55.01;;! 
ù:#ªïÜܵ+>&\ôowó¨ñø4(½;!|Nòdd¼Õõ¿¨W[¦¡¿p\,¶êÕMÜÙ;! 
ÂeãYÃ3ÃS®´øÂÃç~ÂÂÂÂÃýì¯ãm;!Ãv 
´Ã¼ÂÂ9¬u»/"ÂFÃ|b`ÃÃõà±ÃÃÂ8ÃÂ;Baz

这就是我的阅读方式。 fileObject的编码为ISO-8859-1

def tee(self, rules=None):
    _good = open(self.good, "a")
    _bad = open(self.bad, "a")
    with open(self.temp, encoding=rules["encoding"]) as fileobject:
        cpt = 0
        _csv = csv.reader(fileobject, **self.dialect)
        for row in _csv:
            _len = len(row)
            _reconstructed = ";".join(row)
            self.count['original'] += 1
            if _len == rules["columns"]:
                _good.write("{}\n".format(_reconstructed))
            else:
                _bad.write("{}\n".format(_reconstructed))
                # print("[{}] {}:{}{}{}".format(_len, cpt, fg("red"), _reconstructed, attr("reset")))
                self.count['errors'] += 1
            cpt += 1
    _good.close()
    _bad.close()

0 个答案:

没有答案