логотип сайта MyLittleServices.ru

Пифон

Сценарии на Python

Python мне пока не особо нужен. Но порой и с его помощью я делаю что-то полезное. Здесь - результат. Конечно, ничего выдающегося, я ни разу не питонист.

Вот, содержание:


Слувеса

Скрипт берет из словаря в текстовом файле указанное количество слов случайным образом. Выводит результат. Зачем? Ну, например, если в голове нет идей - случайный набор слов может помочь идею найти. Но это не точно.

Перед запуском нужно отредактировать путь к словарю в строке path = "c:\path\dictionary.txt" и вписать нужное количество слов в строке quantity = 5 (по умолчанию выдается 5 штук). Также в строке substring = "" можно прописать подстроку, с которой должно начинаться найденное слово; регистр не важен, ожидается что-то типа substring = "лол".

Для корректной работы с текстом желательно указать правильную кодировку. В строке charset = "utf-8" прописана умолчальная кодировка UTF-8. Скрипт умеет ловить ошибку, связанную с неправильной кодировкой, и пытается открыть файл кодировке Windows-1251. Ежели файл в совсем уж экзотической кодировке - ее можно указать явным образом; например charset = "koi8_r".

Словарь предполагается с одним словом на строке, разделение произойдет по переносам.

Журнал версий


Версия 4.0

  • Скрипт научился искать слова, которые начинаются не только лишь с одной буквы. Иными словами, теперь пользователь может указывать любую подстроку для поиска в начале слова. Как и прежде, это может быть одна буква, либо же пустая строка для выбора любых слов. Для ввода подстроки введена новая переменная substring (вместо старой letter).
  • Изменена сама логика создания выборки: теперь скрипт сначала создает отфильтрованную выборку, и лишь потом из нее случайным образом выбирает слова. Я не смог придумать, как бы тут смог проявиться вечный цикл, так что убрал предохранитель вовсе.

Версия 3.0

  • Внедрена возможность указать начальную букву для случайно выбираемого слова (букву можно указать в строке letter = ""). Всем порою бывает нужна пачка случайных слов, начинающихся с определенной буквы. Регистр не имеет значения.
  • Так как случайный выбор с вышеуказанным условием теоретически может привести к вечному циклу - встроен предохранитель с лимитом в 10000 попыток.
  • Результат выдается в виде строки с разделением слов запятой.

Версия 2.0

  • Улучшенная версия скрипта ловит ошибку с кодировкой и пробует наиболее вероятную альтернативу автоматически.

Версия 1.1

  • Ранее скрипт мог упасть если не смог разобраться с кодировкой файла. Отныне кодировка пишется в явном виде, что позволяет избежать неопределенности.

Версия 1.0

  • Скрипт забирает словарь по указанному пути, разбирает на строки, выводит указанное количество строк случайным образом. Это все.


Рифмоплет

Очень примитивный подборщик рифм из словаря, предоставленного пользователем. Путь к словарю, как водится, нужно отредактировать в теле скрипта (в строке path = "c:\path\dictionary.txt"). Слово-образец также необходимо указать в скрипте, в переменной sample.

Логика работы проста: берется три конечные буквы в каждом слове словаря, и если есть совпадение с тремя конечными буквами образца - слово записывается в результирующий список, кой и отображается в конце работы. Да, порой рифма очень плоха, но это лучше чем ничего.

Если нужно ограничить результат - можно вписать соответствующее число в переменную quantity. А ежели словарь такой большой, что рифм найдено 1000 - работа скрипта будет прервана, ибо даже и 1000 слов вряд ли кто осилит; но если нужно - можно увеличить лимит в переменной limit.

Журнал версий


Версия 1.0

  • Скриптик проходится по словарю и сверяет конечные буквы найденных слов и образца. Ежели совпадают - выводит результат.
  • Есть предохранение от слишком большого количества результатов (по умолчанию максимум 1000 штук).
  • Есть выключенная по умолчанию опция установки количества найденных рифм.

Плект

Нужна выборка слов, в коих есть набор букв? Нет ничего проще! Сей скрипт разберет словарь на строки, и выведет лишь те, где найдется весь комплект указанных пользователем букв. Также есть опциональная возможность указать подстроку, с которой должно начинаться искомое слово.

Работает все просто, нужно лишь указать требуемые параметры в переменных внутри скрипта.

Путь к словарю: path = "c:\path\dictionary.txt"
Максимальное количество требуемых слов: quantity = 5
Подстрока, с которой слово должно начинаться (пустая - любые слова): substring = "нах"
И таки набор букв, каждая из коих должна быть в слове (да, это строка, а не список): letters = "епты"

Журнал версий


Версия 1.0

  • Скрипт выбирает из словаря слова, в которых есть все указанные буковки. Ну, или выводит сообщение, что ничего не нашлось.
  • Есть возможность указать начальную подстроку для требуемого слова. Регистр не имеет значения.

Игрив

Все мы порою напарываемся на игры, созданные альтернативно одаренными разработчиками. В них сохраняться по желанию игрока невозможно, а автоматические сохранения делаются в один и тот же файл. Риски потерять весь прогресс велики. Невозможность перепройти некое плохо сделанное место заново заставляет желать разработчикам всего плохого.

Но есть простое решение: бекап файла сохранения. Если файл бекапить почаще - можно сделать что-то, отдаленно напоминающее нормальную человеческую систему сохранений. И вот, сей скрипт делает одну нехитрую операцию: копирует указанный пользователем файл с переименованием (оригинальное имя + дата в миллисекундах). Ежели будет нужно загрузить предыдущую сохраненку - нужно лишь найти ее в папке с сохранениями, и переименовать обратно (удалив, конечно, косячное сохранение сначала).

Скрипт нужно отредактировать, функция ожидает полный путь к файлу сохранения в качестве аргумента. Ну а регулярность запуска решается средствами операционной системы (в Windows есть нечто под названием «Планировщик заданий»).

Журнал версий


Версия 1.0

  • Скрипт копирует файл по указанному пути, добавляя при этом к имени текущую дату в миллисекундах. Дублирование фактически исключается.
  • Если файла по указанному пути нет - выдается соответствующее сообщение.