検索

ホームページ  >  に質問  >  本文

python数据处理,字典生成的一个问题

高洛峰高洛峰2889日前347

全員に返信(5)返信します

  • 大家讲道理

    大家讲道理2017-04-18 09:27:14

    ここでは、ファイルをカットする必要のない方法を示します。itertools.product は、より簡潔に完了するのに役立ちます:

    リーリー

    出力をカットする方法:

    リーリー

    元のコードの問題点について少し教えてください:

    • f = open('zidian.txt','w') ここでファイルを開いたのに閉じるのを忘れました。ファイルの読み取りと書き込みには with を使用することをお勧めします。

    • dict.readlines()、絶対に必要な場合以外は readlines を使用しないでください。この記事を参照してください。テキスト形式変換コードの最適化

    • また、dic または dict という単語は Python では独特の意味を持っており、経験の少ない Python プログラマーはそれが Python の辞書であると考えるため、誤解を招きやすいです。


    私が回答した質問: Python-QA

    返事
    0
  • 阿神

    阿神2017-04-18 09:27:14

    まあ、質問の意味を誤解していたので、コードを書き直しました。filehandler.readlines() を使用したのは顔面平手打ちだったことは認めます~
    実際、生成されたファイルは少し大きいため、*nix には小さなツール split が組み込まれており、大きなファイルを任意に複数の小さなファイルに分割できます。
    関数を変更するだけで、write2file 関数と関連モジュール (id_generatorrandom) を削除できます string リーリー リーリー

    結果は図に示すように、複数のテキスト ドキュメント

    dict_ ランダム文字列 8
    が生成され、そのうちの 1 つはコンテンツ
    を含みます。 dict_3txVnToL.txt リーリー


    以下は古い内容です

    あなたの欲求を満たしてください。コードを入力してください:

    リーリー

    毎回 1 行ずつ読み取るだけで、ファイルがどんなに大きくても保持でき、省エネで環境に優しく、結果は次のようになります。

    リーリー

    追記: 上で述べたように、メモリが限られている場合、非常に大きなファイル

    が発生すると大惨事になりますので、readlines メソッドの使用は避けてください。

    返事
    0
  • 阿神

    阿神2017-04-18 09:27:14

    file2 の各行をリストに保存し、毎回リストから 5 行ずつ取り出します

    手元に Python がないので、コードは完全に手書きなので、間違いがあるかもしれません。その考えを理解してください

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:27:14

    @dokelung の itertools.cycle は素晴らしいアイデアですが、私にはもっと良い方法があります:

    リーリー

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:27:14

    カウンター行を追加するだけです。一連の値が一致するたびに、行 += 1 になり、行が 5 になったらファイルを閉じ、新しいファイルを開いて行を 0 に設定します。

    返事
    0
  • キャンセル返事