У меня есть 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()