Как стать автором
Обновить

Комментарии 19

А можно сразу настроить мак на работу в UTF-8?
После обновлений версия OS X у меня 10.7.5 и TextEdit делает файлы уже в UTF-8. Но все-таки остаются файлы в Windows-1251, которые делает винда и он не хочет нормально их показывать.
Почему то я такой проблемы не испытываю. Создавая файл в TextEdit спокойно с ним работаю на винде и на маке. ЧЯДНТ?
*хотел сказать на винде и на линуксе

Я вот себе утащу что бы кодировку в сабах с трекеров конвертить, подправлю чуток и думаю всё окей будет, а то питона я тока нчал учить. Так что спасибо.
Линукс не использует MACCYRILLIC по умолчанию
Это самый ужасный код на питон, который я когда-либо видел.
Совет автору: уберите его подальше от людей, пока этим кто-нибудь не воспользовался.
Совет людям, которым нужно перевести файл в UTF-8: enconv -L ru -x UTF-8 <filename>
в os x enconv по умолчанию нет, в портах тоже не нашел
% port search enca
enca @1.13 (textproc)
character set analyser
есть iconv
Да, согласен, код был ужасен. Написал его не думая о красоте, поэтому второй вариант сделал красивым, насколько смог в данный момент.
Для питона есть chardet и все сводится к этому:

import chardet


text = text.decode(chardet.detect(text).get('encoding')).encode('utf-8')
Недостаточно хорошо погуглил, надо было искать готовый модуль. Спасибо, переписал с использованием chardet.
Вот и наступил момент, когда chardet неправильно определил кодировку Win1251, решив, что это MacCyryllic и испортил файл. Я нашел из-за какого символа он так подумал — это была большая русская буква «С», которая на мак выглядит, символ тире.

Добавляю дополнительную проверку между ними.
Тут читал доки по питону, они рекомендуют с файлами работать так:

with open('path', encoding = 'xxx', mode='w') as fout:
blah blah blah

Такая конструкция сама правильно хендилот закрытие файла.
У меня OS X 10.8.2, growlа тут нет, я поставил terminal-notifier. Скрипт работает, но уведомление не выдается. В automator причем при запуске выдает, а на живом файле нет( подскажите плз куда ковырять?
С помощью какого действия передаете в terminal-notifier сообщение? Можно просто в действии шелл-скрипт внизу попробовать дописать

/Applications/terminal-notifier.app/Contents/MacOS/terminal-notifier -message "Task Finished"
с помощью display notification center alert (оно появляется после установки terminal-notification). Рекомендация не помогла, т.к. приложения нет в папке Applications, я так понял оно сразу в терминал что-ли свои либы добавляет.
тогда сделайте в терминале:

find / -name "terminal-notifier*" 2>/dev/null


и узнаете где он
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации