Python 09. 파일

파이썬에서 파일을 다루는 건 매우 쉽고 간단하다.

파일 입출력

f = open('C:/hong3/python.txt','w')	# 파일 열기
f.write('파이썬)	# 문자열 쓰기
-> 3				# 쓰여진 문자 개수 리턴
f.close()			# 파일 닫기

open 내장 함수로 파일을 열면 파일 객체를 반환하는데,
이 객체의 메소드들을 이용해 입출력을 수행한다.

파일 열기 모드

모드 설명
‘r’ 읽기 모드. 쓰진 못하고 읽기만 가능
‘w’ 쓰기 모드. 파일이 존재하지 않으면 생성
‘a’ append 모드. 기존에 있던 내용에 추가해서 쓰기 가능
‘x’ exclusive 모드. w 모드와 동일하지만 이미 파일이 존재하면 error 발생

파일 열기 추가 옵션

모드 설명
‘t’ 텍스트 모드. 파일을 텍스트 모드로 엶. 디폴트 설정
‘b’ 바이너리 모드. 바이너리로 파일을 연다
’+’ 추가적인 모드가 더해지는 옵션. ex) ‘w+’ -> 쓰기 모드로 연 후 읽기 모드가 더해짐
‘기본 옵션(t/b)(+)’

으로 옵션을 사용해준다.

파일 객체

f = open('C:/hong3/test.txt','r')
for line in f:		# 파일 객체는 순회가 가능한 객체
	print(line)
python
is
powerful
f.close()
  • readlines()
f = open('C:/hong3/test.txt','r')
f.readlines()		# 줄 단위로 읽어들여서 리스트로 만들어줌
-> ['python\n','is\n','powerful\n']
f.close()
  • writelines()
s = ['python\n','is\n','powerful\n']
f = open('C:/hong3/test.txt','w')
f.writelines(s)		# 리스트를 파일로 쓴다.
f.close()

파일 포인터

open 함수로 파일을 열면 파일 포인터는 텍스트 파일의 맨 처음 부분을 가리킴.
여기서 부터 읽거나 쓰기를 시작함.
임의 위치에 읽거나 쓰기를 하려면 포인터를 이용할 필요가 있다.

seek 메소드는 2개의 인자가 필요하다.

  • 1번째 인자 -> 기준으로부터 몇 번째 칸으로 이동할지 결정하는 인자
  • 2번째 인자 -> 기준 ( 0 -> 파일의 맨 처음, 1 -> 현재 fp 위치, 2 -> 파일의 마지막 )
f = open('C:/hong3/test.txt','w+')
f.write("ABCDEFGHIJ")
-> 10
f.flush()	# 버퍼 비움 (= 파일로 씀)
f.tell()	# 현재 fp위치

f.seek(4,0)	# 처음으로부터 4번째
f.tell()	# 확인
-> 4

f.read(1)
-> 'E'

f.tell()
-> 5

f.seek(0,1)	# 현재 fp 위치로 
-> 5

f.write("***")
-> 3

f.tell()
-> 8

f.close()
# 파일 내용: "ABCDE***IJ"

seek 메소드는 2개의 인자가 필요하다.

  • 1번째 인자 -> 기준으로부터 몇 번째 칸으로 이동할지 결정하는 인자
  • 2번째 인자 -> 기준 ( 0 -> 파일의 맨 처음, 1 -> 현재 fp 위치, 2 -> 파일의 마지막 )

Comments