산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python 파일 입출력: 파일 연산, 읽기, 쓰기, 관리 마스터하기

Python 파일 입출력

Python에서 파일을 열고, 읽고, 쓰고, 닫는 방법을 명확한 예제와 모범 사례로 배웁니다.

동영상: Python에서 파일 읽고 쓰기

파일

파일은 디스크에 데이터를 영구 저장하는 이름이 있는 위치입니다. RAM은 휘발성이라 프로그램 실행 간 정보 유지를 위해 파일에 의존합니다.

파일과 상호작용할 때 일반적인 순서는: 열기 → 읽기/쓰기 → 닫기.


Python에서 파일 열기

Python 내장 open() 함수는 I/O 연산에 사용할 파일 객체를 반환. 함수 시그니처:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

핵심 포인트:

모드설명
r읽기(기본)
w쓰기; 새로 만들거나 기존 잘라내기
x배타적 생성; 파일 존재 시 실패
a추가; 없으면 생성
t텍스트 모드(기본)
b바이너리 모드
+읽기 및 쓰기
f = open("test.txt")  # r/rt
f = open("test.txt", "w")  # 쓰기
f = open("img.bmp", "r+b")  # 읽기/쓰기 바이너리

a는 문자이므로 인코딩 없인 숫자 97과 동등하지 않음. 텍스트 파일에 encoding='utf-8' 명시 권장.

f = open("test.txt", mode='r', encoding='utf-8')

Python에서 파일 닫기

파일을 제대로 닫아 시스템 자원 해제. close() 메서드가 단순하지만 컨텍스트 매니저가 가장 안전한 패턴.

with open("test.txt", encoding='utf-8') as f:
    # 파일 연산 수행
    pass

컨텍스트 매니저는 예외 발생 시에도 닫힘 보장. 수동으로 열면 try...finally 블록으로 감싸기.

try:
    f = open("test.txt", encoding='utf-8')
    # 연산
finally:
    f.close()

파일에 쓰기

w, a, x 모드로 쓰기. w는 기존 내용 덮어쓰기, a는 보존.

write() 메서드는 문자열(바이너리면 bytes) 받아 쓴 문자 수 반환.

with open("test.txt", "w", encoding='utf-8') as f:
    f.write("my first file\n")
    f.write("This file\n\n")
    f.write("contains three lines\n")

줄 구분을 위해 개행 문자 포함 필수.


파일 읽기

r 모드로 열기. read() 메서드는 선택적 size 인수 받음; 생략 시 EOF까지 읽음.

f = open("test.txt", "r", encoding='utf-8')
print(f.read(4))  # 'This'
print(f.read(4))  # ' is '
print(f.read())   # 나머지 내용
f.close()

seek()로 커서 이동, tell()로 현재 위치 조회:

print(f.tell())  # 현재 위치
f.seek(0)        # 처음으로
print(f.read())  # 전체 읽기

줄 단위 효율적 순회:

for line in f:
    print(line, end='')

대안으로 readline()과 readlines()가 줄별 접근 제공.


Python 파일 메서드

텍스트 모드에서 가장 흔한 파일 메서드 간단 참조:

메서드설명
close()파일 닫기
detach()하위 바이너리 버퍼 분리
fileno()파일 디스크립터 반환
flush()쓰기 버퍼 플러시
isatty()스트림이 대화형인지 확인
read(n)최대 n 문자 읽기; None이면 EOF까지
readable()스트림이 읽기 가능한가?
readline(n=-1)한 줄 읽기, 최대 n 문자
readlines(n=-1)줄 리스트 반환, 최대 n 문자
seek(offset, from_=SEEK_SET)커서를 from_(시작/현재/끝) 기준 offset으로 이동
seekable()스트림이 임의 접근 지원하나?
tell()현재 커서 위치 얻기
truncate(size=None)파일 크기를 size 바이트로 조정
writable()스트림이 쓰기 가능한가?
write(s)문자열 s 쓰기; 쓴 문자 수 반환
writelines(lines)문자열 이터러블 쓰기

python

  1. C 입출력(I/O) 마스터: scanf()와 printf() 완전 정복
  2. 파이썬 데이터 타입 마스터하기: 실전 가이드
  3. 파이썬 연산자 마스터하기: 종합 가이드
  4. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  5. Python 파일 입출력: 파일 연산, 읽기, 쓰기, 관리 마스터하기
  6. 파이썬에서 파일과 디렉터리 존재 여부 확인하기: 실전 가이드
  7. 파이썬 JSON: 인코딩, 디코딩, 파일 처리 실전 가이드
  8. C 파일 입출력 완벽 가이드: 열기, 읽기, 쓰기, 위치 제어, 바이너리 처리
  9. C# 파일 입출력 마스터하기: 스트림, 읽기/쓰기, 고급 파일 작업
  10. 파이썬 파일 입출력: I/O 작업 마스터하기