как угадать кодировку файла - PullRequest
0 голосов
/ 07 октября 2018

У меня есть файл (список авторов из Библиотеки Конгресса) со строками вроде:

Arteaga, Ana Mar�ia
Corval�an-V�asquez, Oscar E.

(при печати на консоли Linux)

Я хотел бы прочитать эти(либо в кадр данных панды, либо в набор строк)

  df = pd.read_csv(fname, sep='\t', header='infer', lineterminator=None,encoding='latin1') #lineterminator \r\n hits error    

или

with open(fname,'r',encoding='ISO-8859-1') as fp: 
    lines=fp.readlines()

, но оба не совсем правы, что дает мне вывод, подобный

Arteaga,Ана Мария

(снова при печати на консоли), когда я почти уверен, что настоящее имя должно быть Марией.

Кто-нибудь распознает этот формат?

1 Ответ

0 голосов
/ 08 октября 2018

Хорошо, похоже, это формат ' marc-8 '.

yaz-iconv -f marc8 -t utf8 infile.txt  > outfile.txt

позаботился о преобразовании в utf8, единственная ошибка - то, что yaz убил всю строкутерминаторы (как для \ r \ n, так и для \ n версий файла).

Они могут быть возвращены с чем-то вроде

sed 's/\[/\n\[/g' outfile.txt > outfile_utf.txt

(например, в моем случае, когда каждыйстрока начинается с символа «[»)

...