определить не латинский текст Charset Ph - PullRequest
0 голосов
/ 13 сентября 2018

Из огромного текстового файла необходимо иметь возможность идентифицировать строки, которые содержат не латинские символы (\ w плюс специальные символы), технически я должен исключить алфавиты, отличные от латиницы.вывод сохраняется в файле журнала для дальнейшей обработки.мои попытки с re не увенчались успехом, видите ли вы умный способ идентифицировать и выделять строки, содержащие нелатинские символы.

import pandas as pd
import re
pattern = '^\w+$'
regex = re.compile(pattern)
filename = "C:\\ImportTool\\import\\file.csv"
with open(filename, 'r', encoding='utf8', errors='ignore') as inputfile, \
     open(filename + '.clean', 'w', encoding="utf8") as outputfile, \
     open(filename + '.special', 'w', encoding="utf8") as outputfile_log:
        for index, line in enumerate(inputfile):
            #print(index, (line_aux[:]))
            if  (regex.search(line) == None):
                outputfile.writelines(line)
            else:
                outputfile_log.writelines(line)

Т.е. нижняя строка должна быть исключена, так как содержимое Hebraic

"100";"xxxxxxxxx";"00002";"ZM";"B";"";"";"B";"R";"R";"X";"RR";"I02";"OxxH";"20161107";"ybatuca";"זמניים מחלקת תיפעול חיפה";"";"";"IL01";"";"";"";"";"1000.000 "

1 Ответ

0 голосов
/ 13 сентября 2018

Python содержит модуль unicodedata для таких вещей:

import unicodedata
...

for index, line in enumerate(inputfile):
    if any(unicodedata.category(ch).startswith("L") and not unicodedata.name(ch).startswith("LATIN")):
        ...  # contains non-latin alphabetic chars
    else:
        ...  # doesn't contain non-latin alphabetic chars
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...