암호:
file('pinax/media/a.jpg', 'wb')
답변
파일 모드 , 쓰기 및 바이너리. .jpg 파일을 작성하고 있으므로 괜찮아 보입니다.
하지만 jpg 파일을 읽으려면 'rb'
더 많은 정보
Windows에서 모드에 ‘b’가 추가되면 바이너리 모드로 파일이 열리므로 ‘rb’, ‘wb’및 ‘r + b’와 같은 모드도 있습니다. Windows의 Python은 텍스트와 바이너리 파일을 구분합니다. 텍스트 파일의 줄 끝 문자는 데이터를 읽거나 쓸 때 자동으로 약간 변경됩니다. 파일 데이터에 대한 이러한 비하인드 수정은 ASCII 텍스트 파일에 적합하지만 JPEG 또는 EXE 파일과 같은 바이너리 데이터를 손상시킵니다.
답변
는 wb
파일이 바이너리 모드로 쓰기 위해 열을 나타냅니다.
바이너리 모드로 쓸 때 Python은 파일에 기록 될 때 데이터를 변경하지 않습니다. 그러나 텍스트 모드에서 ( b
가 그냥 제외 w
되거나를 사용하여 텍스트 모드를 지정할 때 wt
) Python은 기본 텍스트 인코딩을 기반으로 텍스트를 인코딩합니다. 또한 Python은 줄 끝 ( \n
)을 플랫폼 별 줄 끝으로 변환 하여 exe
또는 png
파일 과 같은 바이너리 파일을 손상 시킵니다.
따라서 텍스트 파일을 작성할 때는 텍스트 모드를 사용해야하며 (일반 텍스트 또는 CSV와 같은 텍스트 기반 형식을 사용하든) 이미지와 같은 텍스트가 아닌 파일을 작성할 때는 이진 모드를 사용해야합니다.
참조 :
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
https://docs.python.org/3/library/functions.html#open