У меня есть огромный список файлов (20k). Каждый файл имеет уникальную строку идентификатора в первой строке. Эта первая строка содержит только эту строку идентификатора. Список файлов имеет около n
разных идентификаторов, и каждый идентификатор имеет не менее 500 файлов (но количество файлов для каждого идентификатора не равно).Случайный выбор файлов на основе состояния в файле
Мне нужно случайным образом выборку 500 файлов (каждого идентификатора) и скопировать их в другую директорию, так что я в конечном итоге с подмножеством исходного списка и каждый идентификатор представлен в равном количестве файлов
I знаю random.sample()
может дать мне случайный список, но это не заботиться о ограничении в первой строке, и shutil.copy()
может копировать файлы ...
но как я могу это сделать (эффективно) в питона, повинуясь ограничения идентификатора в первой строке файла?
Похоже, что вы должны сначала сгруппировать их на основе уникального идентификатора, и для каждой группы получить случайный образец. Трудно понять, что вы делаете без примеров того, как вы используете «идентификатор». –