1
私はずっとPythonでランダム化していましたが、何らかの理由でここにこだわっています。たぶん、夜遅すぎるかもしれません...Python - Open TXT、ランダム化、新しいファイルとして保存
とにかく、私は簡単にPythonで簡単な方法を探しています。
- オープンTXT私はちょっと間抜けここで感じている
ファイル新しいTXTとして
私はずっとPythonでランダム化していましたが、何らかの理由でここにこだわっています。たぶん、夜遅すぎるかもしれません...Python - Open TXT、ランダム化、新しいファイルとして保存
とにかく、私は簡単にPythonで簡単な方法を探しています。
ファイル新しいTXTとして
使用random.shuffle
シーケンスランダム化する:
import random
with open('filename', 'rb') as infile:
lines = infile.readlines()
random.shuffle(lines)
with open('newfilename', 'wb') as outfile:
outfile.writelines(lines)
編集:シャッフルの方法が間違っている他の回答で提案します。その中のコメントとリンクを参照してください。ここでシャッフルのより正確な例である:
end = len(lines) - 1
for i in range(end + 1):
choice = random.randint(i, end)
lines[i], lines[choice] = lines[choice], lines[i]
このシャッフルした後、randint
から完璧なランダム性を仮定して、ラインの位置をシャッフルする前に、その位置に完全に無相関です。他の答えに純粋なアルゴリズムを使用すると、そうではありません。 2つのシャッフルは両方とも同じ数の操作を行います。
なぜバイナリとして? –
@TylerCrompton特に理由はありませんが、これが私のデフォルトです。それはおそらく問題ではありません。 – agf
Hmm。とにかくそれを読んでみる必要があります。個人的なデフォルトについて言えば、私は標準出力に出力して、結果をシェルで見ることができますし、出力をファイルとして保存することもできます。たぶんそれは私が教えられた方法だからです。 :/ –