file_object = open("파일이름", "모드") #oepn()함수도 객체를 반환
#파일이름 : 열고자 하는 파일의 경로와 이름 지정
#모드 : 파일을 여는 방식(읽기, 쓰지 등)지정
#파일 모드
#"r" : 읽기 모드(기본값 = 기본 매개변수)
#파일이 존재하지 않으면 오류가 발생
#"w" : 쓰기 모드
#파일이 존재하지 않으면 새로 만들고, 파일이 존재하면 내용을 덮어씀
#"a" : 추가 모드
#기존 파일의 내용을 유지하고, 파일 끝에 데이터 추가
#"b" : 바이너리 모드
#이진 파일을 읽거나 쓸 때 사용, 다른 모드와 함께 사용 (예 : "rb", "wb")
file = oeon("example.txt", "w") #쓰기 모드로 파일 열기
#파일 처리 작업 수행
file.close() #파일 닫기
with open("example.txt", "w") as file:
file.write("이것은 새로운 파일에 쓰여진 내용입니다.") #write()메서드: 파일에 문자열을 씀
lines = ['첫번째 줄\n','두번째 줄\n','세번째 줄\n']
with open("example.txt","w") as file:
file.writelines(lines) #writelines()메서드: 리스트에 담긴 여러줄을 파일에 한꺼번에 씀
with open ("example.txt","a") as file: #a모드
file.write("이 내용은 기존 파일의 끝에 추가됩니다.")
with open("example.txt", "r") as file:
#파일 처리 작업 수행
content = file.read() #read()메서드 : 파일의 전체 내용을 읽어옴
print(content)
#파일이 크면 메모리 문제 발생 할 수 있음 => 큰 파일의 경우 사용에 주의
with open("example.txt","r") as file:
file.readline() #readline()메서드: 파일에서 한 줄씩 읽어옴
print(line)
#파일의 특정 줄만 필요할 때 유용
with open("example.txt", "r") as file:
lines = file.readlines() #파일의 모든 줄을 리스트 형태로 읽어옴
for line in lines:
print(line.strip()) #각 줄의 공백을 제거하고 출력
#각 줄이 리스트의 요소로 저장됨
파일 처리 시 주의사항
파일 경로 확인 (상대 경로, 절대 경로)
파일 모드 확인 (파일이 의도치 않게 덮어써지거나, 읽기 전용 파일에는 데이터를 쓸 수 없음-작업에 맞는 모드를 사용해야함)
파일 닫기 ( 파일이 닫히지 않으면 메모리 누수, 파일 잠금 등의 문제 발생 가능성 있음)
예외 처리 ( 파일을 처리하는 동안 오류가 발생할 수 있음, 예외 처리를 통해 파일이 존재하지 않거나 접근 권한이 없는 경우 대비)
try:
with open("example.txt","r") as file:
content = file.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except IOError:
print("파일을 읽는 중 오류가 발생했습니다.")
파일 모드
- "r": 읽기 전용 모드. 파일이 존재해야 하며, 파일을 읽기만 할 수 있다.
- "w": 쓰기 전용 모드. 파일이 새로 생성되며, 기존 파일이 있으면 내용을 지우고 새로 작성한다.
- "a": 추가 모드. 파일 끝에 내용을 추가한다. 파일이 없으면 새로 생성됨.
- "r+": 읽기와 쓰기가 모두 가능한 모드. 기존 파일을 수정할 때 유용.
- "w+": 읽기와 쓰기가 모두 가능하지만, 파일을 새로 생성하거나 기존 파일 내용을 지운다.
파일 메서드
- write(content): 파일에 content를 쓴다.
- read(): 파일 내용을 전체 읽어 온다.
- readline(): 파일에서 한 줄씩 읽어 온다. 한 줄씩 읽어오며, 반복적으로 호출
- readlines(): 파일의 모든 줄을 리스트로 읽어와서, 한꺼번에 처리할 때 유용
- writelines(lines): 여러 줄을 리스트 형태로 전달받아 파일에 작성.
'Python to AI' 카테고리의 다른 글
Decorator, Context Manager (0) | 2024.11.14 |
---|---|
Iterator, Generator (3) | 2024.11.14 |
매직 메서드(Magic Methods), 클래스 메서드(Class Methods), 정적 메서드(Static Methods), 상속(Inheritance) (0) | 2024.11.12 |
객체지향 프로그래밍(Object-Oriented Programming, OOP), - Object, Class, Instance, Attributes, Methods (0) | 2024.11.11 |
Python 애증의 비트연산자 (0) | 2024.10.30 |