TIL/Python

241122 인공지능을 위한 파이썬 - 4주차_2

beady 2024. 11. 22. 16:01

파이썬에서 파일 다루기

- open() 함수 : 파일을 열고, 파일 객체를 반환

f = open("파일이름", "모드")

# 파일 모드의 종류
# "r" : 읽기 모드(기본값)
# "w" : 쓰기 모드 / 파일이 존재하지 않으면 새로 만들고, 존재하면 내용 덮어씀
# "a" : 추가 모드 / 파일 끝에 데이터 추가
# "b" : 바이너리 모드 / 이진 파일을 읽거나 쓸 때 사용, "rb", "wb" 모드와 함께 사용됨

 

- close() 함수 : 파일 처리가 끝난 후 닫을 때 사용
파일을 닫지 않으면, 데이터 손실이나 파일 잠금과 같은 문제가 발생할 수 있으므로 주의 요망

f = open("example.txt", "r")  # 읽기 모드로 파일 열기
# 파일 처리 작업 수행
f.close()  # 파일 닫기

 

- read() 메서드 : 파일의 전체 내용을 읽어옴
파일이 크면 메모리 문제 발생할 수 있음, 큰 파일의 경우 사용 주의 요망

 

- readline() 메서드 : 파일에서 한 줄씩 읽어옴, 파일의 특정 줄만 필요할 때 유용함

 

- seek() 메서드 : 파일의 출력 시작점 설정(파일 포인터 설정)

f = open("example.txt", "r")

f.read() # text
f.readline() # '' / 이미 read()에서 모두 읽었기 때문에 더 이상 읽을 내용이 없음

f.seek(0) # 파일 포인터를 첫 번째 줄로 옮김
f.readline() # text

 

- readline()의 응용

f = open("example.txt", "r")

lines = f.readlines()
lines # ['첫 번째 줄 text\n', '두 번째 줄 text\n', '세 번째 줄 text\n', '네 번째 줄 text\n']

for line in lines:
	print(line)
# 첫 번째 줄 text

# 두 번째 줄 text

# 세 번째 줄 text

# 네 번째 줄 text

 

- write() 메서드 : 파일에 문자열 쓰기, 이미 파일이 존재하면 덮어쓰기

f = open("example.txt", "w"):
    f.write("파일에 쓰여진 내용입니다.")

※ 버퍼링 메커니즘의 운영체제를 사용중이면 문자열이 임시메모리에 저장되므로 파일을 close해야 내용이 저장됨

 

- writelines() 메서드 : 리스트에 담긴 여러 줄을 파일에 한꺼번에 쓰기

f = open("example.txt", "w"):
lines = ["첫 번째 줄\n", "두 번째 줄\n", "세 번째 줄\n"]
f.writelines(lines)

 

 

※ 파일 처리 시 주의사항

1. 파일 경로 확인

2. 파일 모드 확인

3. 파일 닫기

4. 예외 처리