Задача: есть текствой файл в почти весь в DOS кодировке
с вкраплениями ввида <<текст>>, где текст имеет специальную кодировку(имеется
таблица соотвествия юникоду).
Надо перевести все в одну кодировку(какой-нибудь unicode) , а потом обработать.
хочется чтобы это выглядело
convert_table = { 'a': unichr(....) }
f = open(args[0], 'r')
for line in f.readlines():
replace(line, '<<.*>>'->convert_table else convert_from('cp866'))
#handle line
f.close()
но как я понимаю
1)f.readlines() использовать нельзя, т.к. строки неявно преобразуются
из локальной кодировки во внутренее представление строк питона,
т.е. если локально ru_RU.UTF-8, то будет по умолчанию считаться что строки
в utf-8
2)чего-то подобного replace не существует, да и невозможно сказать,
типа все что в "<<" ">>" переконвертировать так-то, а все остальное так-то.
3)для того чтобы работать со строкой как с массивом байт, надо использовать
черную магию типа pack, unpack.
т.е. имеется желание написать только алгоритм, а не скатываться до описания
алгоритма поиска '<<', проверки следует ли за ним '>>' и т.д.
Возможно ли это на питоне, если нет может следует обратить внимание
на perl, ruby, ...?
Ответ на:
комментарий
от DonkeyHot
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум python: отдельные символы в строке (2005)
- Форум C++: выделить часть строки от символа до символа (2014)
- Форум Питон, разбор строки. (2017)
- Форум Символ окончания строки? (2010)
- Форум строки (специальные символы) (2003)
- Форум символ новой строки (2003)
- Форум Символы из строки ... (2007)
- Форум sed удалить часть строки до 3го вхождения символа / (2017)
- Форум Замена части строки (2017)
- Форум BASH часть строки. (2015)