2010-04-21 4 views
2

저는 python으로 iso-8859-1 파일을 읽고 해당 인코딩을 작성해야하는 스크립트가 있습니다.파이썬에서 읽고 쓰는 모든 파일에 대한 인코딩을 설정하는 방법이 있습니까

이제 모든 로캘이 utf-8로 설정된 환경에서 스크립트를 실행하고 있습니다. 내 파이썬 스크립트에서 모든 파일 액세스가 iso-8859-1 인코딩을 사용해야한다는 것을 정의하는 방법이 있습니까?

+1

체크/체크는 우편으로 발송됩니다. 물론 아침에 당신을 사랑할 것입니다. 나의 데이터는 cp1252가 아닌 ISO-8859-1로 인코딩되어 있습니다. –

답변

4

파이썬은 특정 인코딩으로 파일을 읽고 쓰는 경우 실제로 환경을 듣지 않습니다.stdout이 터미널에 연결된 경우 표준 출력으로 작성된 유니 코드 인코딩시 환경을 청취합니다.

파이썬 2.x에서 파일을 읽고 쓸 때, 바이트 스트링 (str 타입)을 기본값으로 처리합니다. 인코딩 된 데이터입니다. 직접 읽은 데이터를 디코딩하고 작성하려는 내용을 인코딩해야합니다. 또는 codecs.open()을 사용하여 파일을 열면 인코딩이 수행됩니다.

파이썬 3.x에서 이진 모드로 파일을 열면이 경우 bytes이됩니다. 또는 텍스트 모드로 열면 파이썬 2.x에서 codecs.open()처럼 인코딩을 지정해야합니다 .

이들 중 어느 것도 환경 변수의 영향을받지 않습니다. 바이트를 읽거나 인코딩을 지정합니다.

관련 문제