파일 열기
Python에서는 내장된 open() 함수를 사용하여 파일을 열 수 있습니다. 이 함수는 파일 객체를 생성하며, 이를 통해 파일을 읽거나 쓸 수 있습니다.
file_object = open(file_name, access_mode, buffering)
파라미터 설명
- file_name: 읽거나 쓸 파일의 이름을 포함한 문자열입니다.
- access_mode: 파일을 어떤 모드로 열지를決定합니다. 기본값은 읽기 전용(r)입니다.
- buffering: 버퍼링 동작을 제어합니다. 0이면 버퍼링 없음, 1이면 줄 단위 버퍼링, 양수면 버퍼 크기, 음수면 시스템 기본값입니다.
파일 열기 모드一覧
| 모드 | 설명 |
|---|---|
| r | 읽기 전용으로 파일을 엽니다. 파일 포인터는 파일 시작 위치에 있습니다. |
| rb | 이진 읽기 전용으로 파일을 엽니다. |
| r+ | 읽기와 쓰기가 가능한 파일을 엽니다. |
| rb+ | 이진 형식으로 읽기와 쓰기가 가능한 파일을 엽니다. |
| w | 쓰기 전용으로 파일을 엽니다. 기존 파일이 있으면 덮어씁니다. |
| wb | 이진 쓰기 전용으로 파일을 엽니다. |
| w+ | 읽기와 쓰기가 가능한 파일을 엽니다. 기존 파일이 있으면 덮어씁니다. |
| wb+ | 이진 형식으로 읽기와 쓰기가 가능한 파일을 엽니다. |
| a | 추가 모드로 파일을 엽니다. 파일 포인터는 파일 끝에 있습니다. |
| ab | 이진 추가 모드로 파일을 엽니다. |
| a+ | 읽기와 추가가 가능한 파일을 엽니다. |
| ab+ | 이진 형식으로 읽기와 추가가 가능한 파일을 엽니다. |
파일 닫기
파일 객체의 close() 메서드는 버퍼에 남아 있는 모든 데이터를 쓰고 파일을 닫습니다. 파일을 닫은 후에는 더 이상 쓰기를 할 수 없습니다.
file_object.close()
예제:
# 파일 열기
target_file = open("sample.txt", "w")
print("파일 이름:", target_file.name)
# 파일 닫기
target_file.close()
파일 객체의 속성
| 속성 | 설명 |
|---|---|
| closed | 파일이 닫혀 있으면 True, 아니면 False를 반환합니다. |
| mode | 파일을 열 때 사용한 접근 모드를 반환합니다. |
| name | 파일의 이름을 반환합니다. |
| softspace | print 문 사용 후 공백이 필요하면 False, 아니면 True를 반환합니다. |
예제:
# 파일 열기
target_file = open("sample.txt", "w")
print("파일 이름:", target_file.name)
print("닫혔는지 여부:", target_file.closed)
print("열린 모드:", target_file.mode)
print("소프트스페이스 플래그:", target_file.softspace)
target_file.close()
파일 읽기
read() 메서드는 파일에서 지정한 바이트 수만큼 문자열을 읽어옵니다.
file_object.read(byte_count)
byte_count를 지정하지 않으면 파일 전체를 읽습니다.
예제:
# 파일 열기
input_file = open("/tmp/data.txt", "r")
content = input_file.read(15)
print("읽은 내용:", content)
input_file.close()
파일 쓰기
write() 메서드는 문자열을 파일에 씁니다. 자동으로 줄바꿈 문자가 추가되지 않으므로, 필요시 명시적으로 추가해야 합니다.
file_object.write(write_string)
예제:
# 파일 열기
output_file = open("/tmp/output.txt", "w")
output_file.write("Python은 강력한 프로그래밍 언어입니다.\n흥미롭군요!!\n")
output_file.close()
예외 처리基础
try/except 문
try/except 문을 사용하면 예외를 발생시킬 수 있는 코드를 감싸고, 예외 발생 시 적절히 처리할 수 있습니다. 프로그램을 중단하지 않고 오류를 처리할 수 있습니다.
try:
# 실행할 코드
except 예외타입:
# 예외 발생 시 실행할 코드
except 예외타입 as 변수:
# 예외 정보와 함께 처리
else:
# 예외가 발생하지 않았을 때 실행
예제:
try:
file_handle = open("testfile.txt", "w")
file_handle.write("예외 처리를 위한 테스트 파일입니다.")
except IOError:
print("오류: 파일을 찾을 수 없거나 데이터를 읽을 수 없습니다.")
else:
print("파일에 성공적으로 작성했습니다")
file_handle.close()
try-finally 문
try-finally 문은 예외 발생 여부와 관계없이 항상 finally 블록의 코드를 실행합니다.
try:
# 실행할 코드
finally:
# 항상 실행되는 코드
예제:
try:
file_handle = open("testfile.txt", "w")
file_handle.write("예외 처리를 위한 테스트 파일입니다.")
finally:
print("파일 처리 작업 완료")
# 필요시 정리 작업 수행
참고: except와 finally는 함께 사용할 수 없으며, else와 finally도 함께 사용할 수 없습니다.