Python では、複数のプロセスを使用してファイルを書き込むときにエンコードの問題が発生しますが、複数のスレッドを使用している場合には問題が発生しません
我想大声告诉你
我想大声告诉你 2017-06-15 09:21:36
0
3
1133

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

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

リーリー

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

リーリー
我想大声告诉你
我想大声告诉你

全員に返信(3)
巴扎黑

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

いいねを押す +0
世界只因有你

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

リーリー
いいねを押す +0
我想大声告诉你

同じファイルを開くは非常に危険であり、マルチスレッドでエラーが発生しない場合は、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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート