大家讲道理2017-04-18 09:27:14
ここでは、ファイルをカットする必要のない方法を示します。itertools.product
は、より簡潔に完了するのに役立ちます:
出力をカットする方法:
リーリー元のコードの問題点について少し教えてください:
f = open('zidian.txt','w')
ここでファイルを開いたのに閉じるのを忘れました。ファイルの読み取りと書き込みには with を使用することをお勧めします。
dict.readlines()
、絶対に必要な場合以外は readlines
を使用しないでください。この記事を参照してください。テキスト形式変換コードの最適化
また、dic
または dict
という単語は Python では独特の意味を持っており、経験の少ない Python プログラマーはそれが Python の辞書であると考えるため、誤解を招きやすいです。
私が回答した質問: Python-QA
阿神2017-04-18 09:27:14
まあ、質問の意味を誤解していたので、コードを書き直しました。filehandler.readlines()
を使用したのは顔面平手打ちだったことは認めます~
実際、生成されたファイルは少し大きいため、*nix
には小さなツール split
が組み込まれており、大きなファイルを任意に複数の小さなファイルに分割できます。
関数を変更するだけで、write2file
関数と関連モジュール (id_generator
、random
) を削除できます string
リーリー
リーリー
と dict_
ランダム文字列 8
が生成され、そのうちの 1 つはコンテンツ
を含みます。 dict_3txVnToL.txt
リーリー
リーリー
毎回 1 行ずつ読み取るだけで、ファイルがどんなに大きくても保持でき、省エネで環境に優しく、結果は次のようになります。リーリー
追記: 上で述べたように、メモリが限られている場合、非常に大きなファイル が発生すると大惨事になりますので、readlines
メソッドの使用は避けてください。
阿神2017-04-18 09:27:14
file2 の各行をリストに保存し、毎回リストから 5 行ずつ取り出します
手元に Python がないので、コードは完全に手書きなので、間違いがあるかもしれません。その考えを理解してください
リーリー高洛峰2017-04-18 09:27:14
カウンター行を追加するだけです。一連の値が一致するたびに、行 += 1 になり、行が 5 になったらファイルを閉じ、新しいファイルを開いて行を 0 に設定します。