удалить кодированный текст CP932 из комментариев файла данных с помощью np.genfromtxt - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь импортировать файл данных, используя np.genfromtxt

Файл данных содержит большой заголовок с комментариями, каждая строка начинается с символа комментария *

При использовании comments = '*' kw в genfromtxt я все еще выдаю ошибку из-за странного кодирования. После некоторого поиска в Google кодировка CP932, японские символы.

Примером этого является: b '* HW_ATTACHMENT_NAME "\ x95W \ x8f \ x80 | Standard" \ r \ n' Это можно декодировать с помощью _.decode ('cp932') в '* HW_ATTACHMENT_NAME "標準 | Standard" \ r \ n'

Однако genfromtxt не распознает cp932 как кодировку (передавая encoding = 'cp932') и по-прежнему вызывает ошибку UnicodeDecodeError.

Итак, есть ли способ заставить genfromtxt не читать эти символы? Если нет, есть ли способ удалить все символы, закодированные в cp932?

как то так

with open(file) as f:
    #some code to remove cp932 encoded text
    data = np.genfromtxt(f, comments='*', dtype='float')

edit: Это не работает, возможно, это неверный путь.

with open(file) as f:  
    lines = (line.decode('cp932') for line in f)  
    data = np.genfromtxt(lines, comments='*', dtype='float')
...