検索

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

Python では、複数のプロセスを使用してファイルを書き込むときにエンコードの問題が発生しますが、複数のスレッドを使用している場合には問題が発生しません

複数のプロセスを使用してデータをクロールし、それをファイルに書き込みます。実行中にエラーは報告されませんが、ファイルを開くと文字化けします。

マルチスレッドで書き換える場合にはそのような問題はなく、すべて正常です。
データをファイルに書き込むコードは次のとおりです:

リーリー

複数プロセスのプロセスプール

リーリー
我想大声告诉你我想大声告诉你2721日前1120

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

  • 巴扎黑

    巴扎黑2017-06-15 09:23:36

    画像で述べたように、ファイルは間違ったエンコーディングでロードされています。つまり、複数のプロセスで書き込む場合、エンコーディングは UTF-8 ではありません

    返事
    0
  • 世界只因有你

    世界只因有你2017-06-15 09:23:36

    ファイルの最初の行を追加します:

    リーリー

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-15 09:23:36

    同じファイルを開くは非常に危険であり、マルチスレッドでエラーが発生しない場合は、GILである可能性が高く、
    複数のプロセスがロックしていないため、簡単にエラーが発生します。間違いを犯す。
    リーリー

    生産者消費者モデルへの変更を推奨します!

    こんな感じ

    リーリー

    結果

    foo /4/wssd_content.jsp?bookid

    foo /5/wssd_content.jsp?bookid
    foo /6/wssd_content.jsp?bookid
    foo /1/wssd_content.jsp?bookid
    foo /2/wssd_content.jsp?bookid
    foo /3/wssd_content.jsp?bookid
    foo /7/wssd_content.jsp?bookid
    foo /8/wssd_content.jsp?bookid
    foo /9/wssd_content.jsp?bookid

    返事
    0
  • キャンセル返事