15 июн. 2017 г.

Python-скрипт для автоматической сортировки по алфавиту

В своей работе переводчик часто имеет дело со списками, отсортированными по алфавиту: названия стран, имена, бренды и т.д. В исходном языке порядок слов будет одним, а при переводе – совсем другим. Если элементов немного, можно быстро расставить их вручную, а если их десятки?

Для облегчения этой задачи я написал простой скрипт на Python. Кладете любой список в текстовый файл input.txt, который должен находиться в одной папке со скриптом, запускаете скрипт, и отсортированный список выводится в файл output.txt. Сортируются любые данные с переносом строки на конце. Это могут быть строки, абзацы, отдельные слова, буквы, цифры, что угодно. Если файла input.txt нет, программа попросит его создать. Затем отсортированный список можно вставить через буфер обмена в любой файл или таблицу.

Конечно же, нужен движок Python, который можно взять с python.org практически для любой операционной системы и установить за пару кликов.

Кстати, списки стран и вообще простых слов очень хорошо переводит Google Translate. Недавно я сделал это очень быстро. Вставил список сначала в Google Translate, минимум правок, затем в данный скрипт – и готово, несколько секунд работы.

8 комментариев:

  1. Так цифры тоже сортирует? по порядку?
    Не будет такого: ...18,19,2,20,21... ?

    ОтветитьУдалить
    Ответы
    1. Сортировка алфавитная, поэтому, к сожалению, так и будет. Но очень просто написать скрипт и для числовой сортировки, вся разница в одну строку.

      Удалить
    2. Это конечно не большая проблема, Спасибо! Пригодится! как аналог одного из онлайн сервисов...

      Удалить
  2. Спасибо, очень полезно мне как переводчику. Сегодня попробую

    ОтветитьУдалить
  3. Пользователи linux/mac os могут просто выполнить команду sort. Дальше в интерактивном режиме ввести список, после завершения нажать ctrl+d, получите отсортированный ответ.

    А если список уже в файле input.txt, а результат надо получить в output.txt, то команда будет такая:

    sort input.txt > output.txt

    Результат можно и не сохранять в отдельном файле, а просто вывести в терминал, вот так:

    sort input.txt

    У команды есть разные дополнительные ключи, вроде -f (или --ignore-case), если сортировку нужно произвести без учёта регистра символов, или -r (или --reverse), для сортировки в обратном порядке, а также разные способы сортировки цифр (-n, -h). Подробную справку можно прочитать выполнив команду man sort

    ОтветитьУдалить
    Ответы
    1. Тоже не совсем понял, зачем на питоне велосипед изобретать, если есть sort.

      Удалить
    2. Игорь написал про Linux/Mac, а я работаю в Windows.

      Удалить
  4. Код не раюотает:

    line 9
    print(i, end='\n', file=file_new) # print sorted strings one by one

    SyntaxError: invalid syntax

    В чем причина ?

    ОтветитьУдалить

Внимание! Комментарий будет удален, если он агрессивный, неадекватный, нецензурный или не по теме поста.