ファイルの膨大なリスト (20k) があります。各ファイルには、最初の行に一意の識別子文字列があります。この最初の行には、この識別子文字列のみが含まれています。ファイルのリストには約n
異なる識別子があり、各識別子には少なくとも 500 個のファイルがあります (ただし、各識別子のファイルの量は等しくありません)。
(各識別子の) 500 個のファイルをランダムにサンプリングし、それらを別のディレクトリにコピーして、元のリストのサブセットになり、各識別子が同じ量のファイルで表されるようにする必要があります。
のランダムなリストを提供できることはわかっrandom.sample()
ていますが、それは最初の行の制約を処理せず、shutil.copy()
ファイルをコピーできます...
しかし、ファイルの最初の行にある識別子の制約に従うことで、Python でこれを (効率的に) 行うにはどうすればよいでしょうか?