- QFile.open()과 QIODevice 플래그2026년 06월 08일
- 소쩍소쩍이
- 작성자
- 2026.06.08.:44
파일을 여는 방식은 하나가 아니다.
파일을 읽을 수도 있고, 새 데이터를 저장할 수도 있으며, 기존 내용 뒤에 데이터를 추가할 수도 있다.
따라서 파일을 열 때는 목적에 맞는 OpenMode를 선택해야 한다.
파일 열기 목적
파일 내용 읽기 → 읽기 모드(ReadOnly)
파일에 새 내용 저장 → 쓰기 모드(WriteOnly)
기존 내용 뒤에 추가 → 추가 모드(Append)
텍스트 파일 처리 → Text 모드 사용QFile.open() 기본 형태
file = QFile("sample.txt") file.open(QIODevice.OpenModeFlag.WriteOnly | QIODevice.OpenModeFlag.Text)WriteOnly
from PySide6.QtCore import QFile, QIODevice, QTextStream file = QFile("mode_test.txt") if file.open(QIODevice.OpenModeFlag.WriteOnly | QIODevice.OpenModeFlag.Text): stream = QTextStream(file) stream << "WriteOnly로 저장한 첫 번째 줄입니다.\\n" stream << "기존 내용은 사라질 수 있습니다." file.close() print("WriteOnly 저장 완료!") else: print("파일을 열 수 없습니다.") print(file.errorString())WriteOnly 특징
파일에 새로운 내용을 저장할 때 사용
기존 파일이 있다면 내용이 덮어써질 수 있음
저장 기능 구현 시 가장 많이 사용하는 모드Append
기존 내용을 유지하면서 파일 끝에 새로운 내용을 추가한다.
from PySide6.QtCore import QFile, QIODevice, QTextStream file = QFile("mode_test.txt") if file.open(QIODevice.OpenModeFlag.Append | QIODevice.OpenModeFlag.Text): stream = QTextStream(file) stream << "\\nAppend로 추가한 줄입니다." file.close() print("Append 추가 완료!") else: print("파일을 열 수 없습니다.") print(file.errorString())Append 특징
기존 데이터를 유지함
파일 마지막 위치에 내용 추가
로그 기록이나 채팅 저장 기능에서 자주 사용ReadOnly
파일 내용을 수정하지 않고 읽기만 할 때 사용한다.
from PySide6.QtCore import QFile, QIODevice, QTextStream file = QFile("mode_test.txt") if file.open(QIODevice.OpenModeFlag.ReadOnly | QIODevice.OpenModeFlag.Text): stream = QTextStream(file) content = stream.readAll() file.close() print("파일 내용:") print(content) else: print("파일을 읽기 모드로 열 수 없습니다.") print(file.errorString())ReadOnly 특징
파일 내용을 읽기만 가능
파일 데이터가 변경되지 않음
설정 파일이나 저장된 데이터 로딩 시 사용QIODevice 플래그
플래그 의미 ReadOnly 파일을 읽기 전용으로 엽니다. WriteOnly 파일을 쓰기 전용으로 엽니다. Append 파일 끝에 내용을 추가합니다. Text 텍스트 파일 모드로 엽니다. 추가 플래그 의미 ReadWrite 읽기와 쓰기를 모두 허용합니다. Truncate 파일을 열 때 기존 내용을 모두 삭제합니다. NotOpen 파일이 열려 있지 않은 상태입니다. 플래그를 조합하는 이유
파일을 열 때는 하나의 플래그만 사용하는 경우보다 여러 플래그를 함께 사용하는 경우가 많다.
텍스트 파일 저장
→ WriteOnly | Text
텍스트 파일 읽기
→ ReadOnly | Text
기존 내용 유지 후 추가 저장
→ Append | Text'PySide6 > File' 카테고리의 다른 글
QTextStream으로 텍스트 파일 다루기 (0) 2026.06.08 파일 읽기와 쓰기 (0) 2026.06.08 회원가입, File 입출력, Json 사용, PW Hash 변환 추가 구현 (0) 2026.06.08 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)