북치기_개발모드
북치기 개발모드
북치기_개발모드
전체 방문자
오늘
어제
  • 분류 전체보기 (39)
    • 개발 (28)
      • python (20)
      • flutter (0)
      • 잡종 (8)
    • 잡다한것들 (6)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 사업자 전화번호
  • 셀레니움
  • 브라이덜샤워
  • 네이버
  • 광주파티룸
  • 광주
  • 전대 파티룸
  • delete
  • select
  • Python
  • 크롤링
  • jsp
  • 판매자db
  • #공유오피스
  • 파이썬
  • mysql
  • Update
  • 카멜리 파티룸
  • 마케팅db
  • 카멜리파티룸

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
북치기_개발모드

북치기 개발모드

pyqt로 file open, file save 할 때 인코딩 주의점
개발/python

pyqt로 file open, file save 할 때 인코딩 주의점

2022. 12. 9. 00:40
반응형

우린 보통 파일 오픈할 때만 인코딩을 신경쓰게된다.

하지만 저장을 할 때에도 인코딩을 맞춰줘야 에러가 발생하지않는다.

 

왜냐하면 pyqt에서 제공하는 textedit 을 저장하면, 기본으로 ANSI로 저장되게 되는데, 이는 CP949로만 인코딩이 가능하다.

그냥 아무 옵션주지않고 할거라면 CP949로만 호출하면 되는데,

만약 UTF-8로 옵션을 줄거라면 저장할 때에도 UTF-8 옵션을 줘야한다.

PYQT 내에서 저장한 파일 외 +@로 다른 파일을 불러올 계획이 있다면 꼭 UTF-8로 통일시켜야한다.

 

예를들어 메모장은 기본 인코딩이 UTF-8이기 때문에 바로 에러가 발생한다.

 

참고코드

	def filesave(self):
		# 텍스트창에 써져있는 내용들을 저장함. txt한정으로 저장
		FileSave = QFileDialog.getSaveFileName(self, 'Save file', './',"*.txt")
		TextBox = self.TextBox_ASS.toPlainText()

		#파일 선택 창 취소 시 다음작업이 실패되서 에러가 뜸. 따라서 try 넣는다.
		try:
			f = open(FileSave[0], 'w', encoding='utf-8')
			f.write(TextBox)
			f.close()
		except:
			pass



	def fileopen(self):
		self.TextBox.clear()
		try : 
			file_name = QFileDialog.getOpenFileName(self, 'File Open', './',"*.txt")
			File = open(file_name[0], "r", encoding='utf-8')
			lines = File.readlines()
			File.close()
			# print(lines)
반응형
저작자표시 비영리 변경금지 (새창열림)

'개발 > python' 카테고리의 다른 글

파이썬 출력+로깅 같이하기 (파워쉘 Tee-Object)  (0) 2023.02.09
멀티프로세싱/멀티스레딩 df 중복 관련 정리  (0) 2022.12.12
[python] PyQt5-tools 설치 에러 -> pyside2로 해결  (0) 2022.10.09
[파이썬] 요일 정렬하기 (무식하게)  (0) 2022.10.08
[파이썬] 윈도우 폴더 생성 os.mkdirs 특수문자 제거 정규식  (0) 2022.10.07
    '개발/python' 카테고리의 다른 글
    • 파이썬 출력+로깅 같이하기 (파워쉘 Tee-Object)
    • 멀티프로세싱/멀티스레딩 df 중복 관련 정리
    • [python] PyQt5-tools 설치 에러 -> pyside2로 해결
    • [파이썬] 요일 정렬하기 (무식하게)
    북치기_개발모드
    북치기_개발모드
    북치기박치기 개발모드입니다.

    티스토리툴바