찾다

 >  Q&A  >  본문

Python은 여러 프로세스를 사용하여 파일을 작성할 때 인코딩 문제가 발생하지만 여러 스레드를 사용할 때는 그렇지 않습니다.

여러 프로세스를 사용하여 데이터를 크롤링하고 파일에 기록하면 실행 시 오류가 보고되지 않지만 파일을 열면 왜곡됩니다.

멀티스레딩으로 다시 작성할 때는 그런 문제가 없으며 모든 것이 정상입니다.
다음은 파일에 데이터를 쓰는 코드입니다.

으아악

여러 프로세스를 위한 프로세스 풀

으아악
我想大声告诉你我想大声告诉你2721일 전1117

모든 응답(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
  • 취소회신하다