(수업내용 : 파일에서 읽기
- 파일을 열면 파일 포인터가 맨 첫 부분을 가리킨다. readline()은 현재 위치에서 시작하여서 현재 줄의 끝에 도달
할 때까지 텍스트를 읽어서 반환한다. 이후에 파일 포인터는 다음 줄로 이동한다. readline()은 줄의 끝을 나타내
는 줄바꿈 문자까지 포함하여서 우리에게 반환한다. 만약 intput.txt 파일에 다음과 같이 2줄이 저장되어 있었다
고 하자.
input.txt의 내용
홍길동
김철수
첫 번째 readline() 호출은 “홍길동\n” 문자열을 반환한다. 두 번째 readline() 호출은 “김철수\n” 문자열을 반환
한다. 세 번째 readline() 호출은 더 이상 데이터가 없기 때문에 공백 문자열 “”이 반환된다.아래 코드를 보자.
infile = open("d:\\input.txt", "r")
line = infile.readline()
while line != "" :
print(line)
line = infile.readline()
출력결과
홍길동
김철수
여기서 홍길동 다음에 빈 줄이 출력되는 것은 line 변수 안에 줄바꿈 문자인 ‘\n’
저장되어 있기 때문이다. 줄바꿈 문자를 삭제하여 rstrip() 메소드를 사용한다.
rstrip()은 줄바꿈 문자와 같은 공백 문자들을 삭제하는 메소드이다.
line = infile.readline().rstrip()
파일 안에 숫자 데이터가 저장되어 있다고 하자. 이 때는 int()나 float()함수를 사
용하여서 문자열을 숫자로 변환하여야 한다.
value1 = int(line)
value2 = float(line)) 파일에 쓰기
- "w" 모드로 파일을 열었다면 우리는 파일에 텍스트를 쓸 수 있다. 이때는 write() 메소드를 사용한다. 예를 들어서
문자열 ‘김영희’를 파일에 쓰려면 다음과 같은 명령문을 사용한다.outfile = open("input.txt", "w")
outfile.write("김영희\n")
콘솔에 출력할 때는 print() 함수가 자동으로 줄바꿈 문자를 붙이지만, 파일에 쓸 때는 우리가 줄바꿈 문자를 붙여
서 보내주어야 한다. write() 메서드의 중요한 내용은 데이터가 있는 파일에 ‘w’모드로 쓰면 기존의 데이터는 지워
진다. 추가를 하려면 ‘a’모드를 사용한다.
print() 함수를 이용해서도 파일에 텍스트를 출력할 수 있다. file매개 print("김영희", file=outfile)
변수를 통하여 파일 객체를 전달하면 된다.파일 닫기
- 파일 작업을 마쳤으면 파일을 제대로 닫아야 한다. 파일을 닫으면 파일과 연결된 자원이 해제된다.
파이썬에서
close()를 호출하여 파일을 닫는다.
파이썬에는 참조되지 않은 객체를 정리하는 쓰레기 수집기가 있지만 파일을
닫을 때 이것에 너무 의존해서는 안된다. 좋은 강의 항상 잘 듣고 있습니다. 언제나 강사님 강의는 명쾌하면서 자세하게 하셔서 정말 공부하는 데많으 도움이 되고있습니다. 앞으로도 변함없이 좋은 강의 부탁드립니다. 저도 열심히 해서 좋은 결과 낳도록 하겠습니다. 감사합니다. 수고 많으셨습니다.^^