Программа для рандомного выбора файлов

Обновлено: 06.07.2024

каков наилучший способ выбрать случайный файл из каталога в Python?

Edit: вот что я делаю:

это особенно плохо, или есть особенно лучший способ?

что касается вашего отредактированного вопроса: во-первых, я предполагаю, что вы знаете риски использования dircache , а также тот факт, что он является устарел с 2.6 и удален в 3.0.

dircache объект в основном неизменяем (после того, как список каталогов кэшируется, он никогда не читается снова), поэтому никакого вреда в параллельных чтениях из него.

кроме этого, я не понимаю, почему вы видите любая проблема с этим решением. Все в порядке.

язык агностик решение:

1) получить общее нет. файлов в указанном каталоге.

2) Выберите случайное число от 0 до [всего нет. файлов - 1].

3) получить список имен файлов в виде подходящей индексированной коллекции или такой.

4) Выберите N-й элемент, где n-случайное число.

Если вы хотите, чтобы каталоги были включены, ответ Юваля А. Иначе:

проблема с большинством приведенных решений заключается в том, что вы загружаете все свои входные данные в память, что может стать проблемой для больших входов/иерархий. Вот решение, адаптированное Поваренная Книга Perl том Кристиансен и Нат Торкингтон. Чтобы получить случайный файл в любом месте под каталогом:

обобщение немного делает удобный скрипт:

независимо от используемого языка, вы можете прочитать все ссылки на файлы в каталоге в datastructure как массив (что-то вроде "listFiles"), получить длину массива. вычислите случайное число в диапазоне от " 0 " до "arrayLength-1" и получите доступ к файлу с определенным индексом. Это должно работать, а не только в python.

Если вы не знаете, какие файлы есть, вам нужно будет получить список, а затем просто выбрать случайный индекс в списке.

вот еще одна попытка:

редактировать: в вопросе теперь упоминается страх перед "расовым состоянием", которое я могу только предположить, является типичной проблемой добавления/удаления файлов, пока вы пытаетесь выбрать случайный файл.

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

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

самое простое решение-использовать os.listdir & случайные.выбор nethods

давайте посмотрим на него шаг за шагом : -

1> os.listdir метод возвращает список, содержащий имя записи (файлы) в указанном пути.

2> Этот список передается в качестве параметра случайные.выбор способ которая возвращает случайное имя файла из список.

3> имя файла хранится в random_file переменной.

учитывая приложение в реальном времени

вот пример кода python, который будет перемещать случайные файлы из одного каталога в другой

Вы можете проверить весь проект на GitHub Случайный Выбор Файлов

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

Возможности программы «Генератор двоичных файлов»

Размер создаваемого файла можно задать, и он может быть абсолютно любым: от одного байта до многих гигабайтов!

Интерфейс программы генерации двоичных файлов

Интерфейс программы генерации двоичных файлов "Huge File Generator"

Кроме того, в программе можно настроить периодическую вставку заданного или произвольного байта. При этом, если периодичность вставки больше, чем 1 байт, то промежутки в файле будут заполнены значением, указанным в поле «Заполнение».

Если периодичность указана равной 0, то вставка осуществляться не будет, и утилита заполнит файл числами, имеющими одно и то же значение, заданное в поле Заполнение.

Как нетрудно догадаться, флаг Произвольное значение байта отвечает за то, что в файл с заданной периодичностью будут вставлены байты с псевдослучайными значениями. Если период вставки равен 1, то весь файл будет заполнен псевдослучайными значениями.

Результат работы программы генерации файлов: создан файл размером более 6 Гб, заполненный случайными величинами

Результат работы программы генерации файлов: создан файл размером более 6 Гб, заполненный случайными величинами

Итак, список возможностей программы:

  • создание двоичных файлов заданного (неограниченного) размера;
  • заполнение файла константой;
  • вставка периодического константного или случайного значения с настраиваемым шагом вставки.

Требования программы

Последнее от aave

Другие материалы в этой категории:

Оставить комментарий

Полезные советы

Заметка совершенно не по теме блога, но всё же напишу. Я люблю русский язык, и мне больно смотреть на то, как люди в последние годы становятся всё менее грамотными и всё проще относятся к наследию наших предков – великому русскому языку. В частности, многие совершенно безобразно путают, как правильно писать ТСЯ и ТЬСЯ в глаголах. Они помнят, что когда-то в школе им рассказывали, что в некоторых случаях ТЬСЯ пишется с мягким знаком, и теперь вставляют его везде, где нужно и не нужно. Из-за этого порой получаются слова, которых и вовсе не существует в русском языке (например, «перемещаеться»). Но давайте ближе к делу.

Очень легко запомнить, в каком случае в глаголе следует писать «тся», а в каком «ться». Существует такое простое мнемоническое правило. Задаём вопрос к глаголу – «что делает?» или «что делать?». Если подходит первый вариант – «что делает?» – значит, «тся» пишется без мягкого знака (обратите внимание: в вопросе также нет мягкого знака). Если подходит форма вопроса «что делать?» (с мягким знаком), значит и в глаголе пишем мягкий знак: «ться».

Реклама

Последние статьи

Управление измерительными приборами Rohde-Schwarz по интерфейсу RSIB

Управление измерительными приборами Rohde-Schwarz по интерфейсу RSIB

Измерительная аппаратура компании Rohde&Schwarz – это профессиональная аппаратура, которая используется в рабочих процессах на многих предприятиях по всему…

Как подключить MAX31865 и термодатчик PT100 к Arduino

Как подключить MAX31865 и термодатчик PT100 к Arduino

Научимся работать с конвертером MAX31865 аналогового сигнала датчика температуры P100/P1000 в цифровой сигнал.

Как подключить и использовать NRF24L01 с Arduino

Как подключить и использовать NRF24L01 с Arduino

Научимся передавать и принимать данные «по воздуху» с помощью чипа nRF24L01.

Как подключить датчик температуры и влажности HTU21D

Как подключить датчик температуры и влажности HTU21D

Рассмотрим подключение цифрового датчика температуры и влажности HTU21D и научимся считывать с него показания. Причём как с использованием…

Реализация интерфейса 1-Wire на микросхемах FTDI

Реализация интерфейса 1-Wire на микросхемах FTDI

С интерфейсом 1-Wire мы сталкиваемся ежедневно: он применяется для чтения ключей-«таблеток» от домофона. Микросхемы фирмы FTDI (FT2232, FT4232…

Как подключить к Arduino преобразователь логического уровня сигнала

Как подключить к Arduino преобразователь логического уровня сигнала

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

Как подключить светодиодную панель к драйверу LINSN без передающей карты

Как подключить светодиодную панель к драйверу LINSN без передающей карты

Рассмотрим вариант подключения большой светодиодной панели к системе управления LINSN без передающей карты (sending card), используя только компьютер…

Как подключить MAX7219 к Arduino

Как подключить MAX7219 к Arduino

Как подключить дисплей HPDL-1414 к Arduino

Как подключить дисплей HPDL-1414 к Arduino

Дисплей HPDL-1414 – это миниатюрный 4-символьный «умный» дисплей. Он имеет встроенную память для хранения набора предустановленных символов, встроенный…

Как подключить датчик RCWL-0516 к Arduino

Как подключить датчик RCWL-0516 к Arduino

RCWL-0516 – это миниатюрный модуль, который представляет собой доплеровский радар. Он позволяет обнаруживать движение в пределах 5-9 метров…



Windows XP


Windows Vista


Windows 7


Windows 8


Windows 10

главное окно

Основная информация о программе

The Hat - эта программа вам непременно пригодится, если у вас в доме много детей. Вы наверняка не раз уже слышали детские споры и крики "Я первый!", "Нет, я!". Детям всегда сложно договориться друг с другом - ведь каждый из них хочет быть первым во всём. Но теперь у вас появился шанс уравнять шансы быть первым для каждого из них. В этом вам поможет The Hat. Всё, что делает эта программа - в случайном порядке выстраивает список введенных в неё имен. Вы можете вводить этот список вручную, вставлять через буфер обмена либо импортировать из текстовых файлов (при этом список может быть сколь угодно большим). Просто нажмите на большую кнопку "Shuffle" (Перемешать) - и введенный список имен будет выведен в порядке случайной очередности. Программа также может выводить случайные пары имен. А при помощи встроенной функции случайного выбора только одного имени вы можете устраивать лотереи, розыгрыши и конкурсы. Сгенерированные при помощи The Hat списки можно сохранять, а сам процесс генерации таких списков сопровождается забавной анимацией и звуковыми эффектами. Помимо родителей, The Hat может пригодиться воспитателям и школьным учителям.

Девушка стоит перед неоновыми музыкальными инструментами

Не все модели аудиопроигрывателей имеют функцию автоперемешивания списка воспроизведения. Для меломана 15 песен подряд одного исполнителя могут доставить моральный дискомфорт. Автолюбитель же, постоянно отвлекаясь на переключение музыки на магнитоле, рискует попасть в ДТП. Чтобы этого избежать, воспользуйтесь одной из программ для перемешивания файлов.

Total Commander

Прежде всего определите, почему возникла проблема с перемешиванием файлов на устройстве. Как правило, такого рода проблемы возникают на старых моделях портативных колонок, МР3-плееров, на недорогих автомагнитолах и музыкальных центрах:

  • устройство имеет только один способ автоперемешивания музыки, например, пять музыкальных файлов перемешиваются только в порядке «5, 2, 4, 1, 3»;
  • устройство вовсе не имеет функции перемешивания музыки и воспроизводит музыку в алфавитном порядке;
  • устройство воспроизводит музыку по дате создания файла или дате добавления файла на саму флешку.

Чтобы избежать прослушивания плейлиста в одном и том же порядке, существует самый простой способ, который «излечит» от всех вышеперечисленных проблем — полное или частичное переименование музыкальных файлов.

Чтобы переименовать файлы с помощью Total Commander, скачайте и установите его на компьютер. После установки программы на компьютер, каждый раз для перемешивания музыки в случайном порядке выполняйте такой алгоритм:

  1. Предварительно поместите все музыкальные файлы в одну папку на ПК или ноутбуке. Сделайте копию этой папки клавишами «Ctrl+C» и «Ctrl+V». Или с помощью контекстного меню правой кнопки мыши с выбором «Копировать» и «Вставить».
  2. Откройте Total Commander и необходимую папку с музыкой в левом окне программы.
  3. В левом верхнем углу выберите вкладку «Выделение», в ней нажмите «Выделить все».
  4. В левом верхнем углу нажмите на вкладку «Файлы», выберите «Групповое переименование». В этом окне нужно проделать действия для переименования файлов, в зависимости от их названия и проблемы с автосортировкой на устройстве.

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

  1. В левом верхнем углу в окошко «Маска для: имени файла» вставьте следующую команду [=tc.случайное число] [N].
  2. Остальные поля оставьте без изменений и нажмите внизу кнопку «Выполнить». Программа автоматически вставит случайное число перед названием каждой композиции.
  3. В левом окне программы нажмите на «Имя», чтобы отсортировать и перемешать файлы по возрастанию начального числа.

Если же хотите перемешать композиции, названия которых уже начинаются с цифр, то используйте в окошке «маски» команду [YMD] [N] или [YMD]. Программа автоматически добавит в название день (Y), месяц (M) и год (D) создания файла с музыкальной композицией. Можно использовать и другие вариации, например только [YM].

Вышеперечисленные методы могут не дать необходимого результата, например, из-за особенностей проигрывателя. Тогда воспользуйтесь командой [N4–6], и Total Commander вырежет первые три и последние знаки в названии, создав новое уникальное имя из части старого. Отсортируйте список композиций по имени.

Провода в аудиосистеме

Перемешать музыку можно с помощью программ: Unsplash

ReNamer

ReNamer — это бесплатная программа, которая служит для переименования больших массивов файлов. Благодаря своему функционалу она может послужить для переименования и перемешивания песен на флешке.

Скачайте программу ReNamer с официального сайта и установите ее на компьютер. Чтобы переименовать музыку и отсортировать в случайном порядке через ReNamer:

  1. Откройте программу ReNamer.
  2. Откройте папку с музыкой и выделить все файлы. Это можно сделать с помощью рамочки, зажав левую кнопку мыши. Если же музыки много или вам нужно переименовать все содержимое папки, зажмите «Ctrl+A».
  3. Перетащите файлы с помощью левой кнопки мыши в нижнее окошко программы. Если у вас последняя версия программы, можно воспользоваться для этих же целей вкладками «Доб. файлы» или «Доб. папки» в верхней части окна программы.
  4. Нажмите в верхнем окошке «Нажмите здесь для добавления правила», чтобы создать правило для переименования песен.
  5. В меню слева выберите «Рандомизация».
  6. Длину последовательности выбирайте в зависимости от количества файлов, которые необходимо переименовать. В среднем достаточно будет длины из 4 знаков. Включите с помощью галочек параметры «Желательно уникальные» и «Пропускать расширение».
  7. В используемых символах достаточно одних цифр, однако можно добавить и английские буквы. Новое случайное имя должно добавляться в префикс названия. Если же названия песен состоят только из цифр, выберите параметр «Заменить текущее имя».
  8. Нажмите «Переименовать». Отсортируйте список по имени в папке с музыкой.

AutoRen

Программа AutoRen в чем-то похожа на программу ReNamer. Она также предназначена для переименования больших массивов файлов. Чтобы воспользоваться ее функционалом:

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

Музыкальный центр в автомобиле

Умение перемешать файлы пригодится автолюбителям: Unsplash

Ручной метод с помощью Windows

Если же музыкальных файлов не очень много (например, 20–30 штук), их можно разово отсортировать вручную с помощью стандартного функционала Windows. Такая сортировка займет меньше времени, чем поиск в интернете необходимой программы, скачивание и ее установка.

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

Чтобы вручную отсортировать файлы, проделайте следующие действия:

  1. Откройте папку с музыкой.
  2. Откройте любой сайт для создания случайных чисел.
  3. Задайте диапазон от 100 до 999, включите параметр «исключить повторения».
  4. Количество генерируемых чисел должно соответствовать количеству файлов, которые хотите переименовать. Это число можно посмотреть в левом нижнем углу папки с музыкой после слова «Элементы».
  5. Нажмите на первую композицию левой кнопкой мыши один раз. После небольшой паузы кликните еще раз левой кнопкой мыши по файлу (пауза может быть короткой, но избегайте двойного клика). Аналогичным, но немного более длинным будет вариант нажатия на файл правой кнопкой мыши и выбор во всплывающем меню варианта «Переименовать».
  6. Введите первое сгенерированное случайное число, нажмите «Enter». Теперь песня переименована.
  7. Повторите действия по переименованию для каждой из песен, используя следующие по очереди случайные числа.
  8. Отсортируйте список песен по имени. Таким образом музыкальные композиции перемешаются.

Заранее перемешанная папка в музыке позволит получить удовольствие от ее прослушивания, не отвлекаясь на перематывание проигрывателя. Программы Total Commander, ReNamer и AutoRen придут на помощь меломанам. С их помощью можно перемешать музыку на флешке так, чтобы в списке из сотни-второй песен слушать каждый день не только первые десять.

Узнавайте обо всем первыми

Подпишитесь и узнавайте о свежих новостях Казахстана, фото, видео и других эксклюзивах.

Читайте также: