Python 파일 입출력
표준 입출력
표준 입출력 장치는 키보드와 모니터가 있습니다.
표준 출력 함수 print( ) 의 사용 예제
표준 입력 함수 input()의 사용 예제
파일 입출력
⊙ 파일 출력 : 프로그램의 처리 결과를 파일에 저장함을 의미합니다.
⊙ 파일 입력 : 파일로부터 데이터를 읽어 프로그램에서 처리하는 것을 의미합니다.
파일 입출력을 위한 Open( )과 Close( )
파일 입출력을 위한 절차는 다음과 같습니다.
① open() 함수를 이용하여 지정된 파일의 객체를 생성합니다.
② 생성된 파일 객체로부터 데이터를 읽어 들이거나 출력합니다.
③ close() 함수로 지정된 파일 객체의 사용을 종료합니다.
open( ) 함수
● 파일을 열어 파일 객체를 반환하는 함수입니다.
● 매개변수로 파일을 지정합니다.
● 지정된 파일이 없을 경우 자동으로 새로운 파일을 생성합니다.
open( )함수의 형식 |
파일객체 = open(파일이름, 이용형태) or with open(파일이름, 이용형태) as 파일객체 : ............................... # 파일 처리 블록을 지정해줌 |
open( )함수의 이용형태
지정값 | 모드 | 설명 |
r | 읽기 모드 | 기존 파일로 부터 읽어 들임을 의미합니다. 파일이 없는 경우는 오류가 발생하고, 모드를 지정하지 않으면 읽기모드가 자동으로 설정됩니다. |
w | 쓰기 모드 | 파일에 데이터를 저장하기 위한 모드를 의미합니다. 지정된 파일을 생성하여 데이터를 저장합니다. 지정된 파일이 이미 존재하는 경우는 그 파일의 내용을 모두 삭제하고 새로운 데이터를 저장합니다. |
a | 추가 모드 | 지정된 파일의 끝부분에 데이터를 추가하여 저장합니다. 지정된 파일이 없는 경우는 새로 생성하여 데이터를 추가합니다. |
close() 함수
close() 함수로 지정된 파일 객체의 사용을 종료합니다.
close( )함수의 형식 |
파일객체.close( ) |
입출력을 수행하기 위해 파일을 open( )하고 close( )하는 예제
# open( ) 을 사용하는 예제 |
f = open("sample.txt", 'w') # open( ) 을 사용하여 파일 객체를 쓰기('w') 모드로 생성함 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # 지정한 파일 객체에 출력을 수행함 . . . . . . . . . . . . . . . . . . . . f.close( ) # 지정한 파일을 close() 함수를 사용하여 닫아줌 |
# with open( )을 사용하는 예제 |
with open("sample.txt", 'w') as f : # with open( )을 사용하여 파일 객체를 쓰기('w')모드로 생성함 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # with 블록 내에서 지정한 파일 객체에 출력을 수행함 . . . . . . . . . . . . . . . . . . . . # 파일 close( ) 는 생략이 가능함 |
텍스트 파일 입출력
파일에 텍스트를 입출력하기 위한 메서드는 write() 메서드와 read() 메서드가 있습니다.
write() 메서드
write() 메서드는 매개변수로 문자열만 사용가능하고, 지정된 파일을 생성하여 문자열을 추가하는 메서드입니다.
9개의 문장을 sample.txt 파일에 추가하는 프로그램 예제 |
f = open("C:\Test\sample.txt", 'w') # open()을 사용하여 파일 객체 f 를 쓰기모드로 생성함 for i in range(1,10): # 반복문을 사용하여 9개의 문장을 지정 파일에 출력함 f.write('%d번째 줄입니다.\n'%i) f.close( ) # 지정한 파일을 close( ) 함수로 닫아줌 |
기존의 생성된 파일 끝부분에 새로운 내용을 추가하는 방법은 다음과 같습니다.
write() 메서드의 추가 모드 예제 |
f = open("C:\Test\sample.txt", 'a') # 추가 모드('a')로 파일 객체를 생성함 f.write('마지막 줄은 추가 모드 출력입니다.') # 기존의 파일 끝부분에 새로운 문자열을 추가로 출력함 f.close( ) # 지정한 파일을 close() 함수로 닫아줌 |
read() 메서드
read() 메서드는 파일의 전체 내용을 하나의 문자열로 반환하는 메서드입니다.
생성된 sample.txt 파일로부터 내용을 읽어들여 출력하는 프로그램 예제 | 출력 결과 |
f = open("C:\Test\sample.txt", 'r') # 읽기 모드로 파일 객체를 생성함 st = f.read() # 파일의 모든 내용을 읽어서 st 변수에 저장함 print(st) # 지정한 파일에서 읽은 내용을 출력함 f.close() # 지정한 파일을 close() 함수로 닫아줌 |
1번째 줄입니다. 2번째 줄입니다. 3번째 줄입니다. 4번째 줄입니다. 5번째 줄입니다. 6번째 줄입니다. 7번째 줄입니다. 8번째 줄입니다. 9번째 줄입니다. 마지막 줄은 추가 모드 출력입니다. |
● read(int n) 메서드 : 파일의 일부분을 읽어오는 기능을 의미합니다.
● seek(0) 메서드 : 파일 포인터를 파일의 처음 위치로 이동시키는 기능을 의미합니다.
read(int n) 메서드와 seek(0) 메서드 예제 | 출력 결과 |
f = open("C:\Test\sample.txt", 'r') # 읽기 모드로 파일 객체를 생성함 print(f.read(10), end=' ') # 10개의 문자를 읽어서 출력함. 포인터도 같이 이동함 print(f.read(10), end=' ') # 다음 10개의 문자를 읽어서 출력함 print(f.read(10), end=' ') # 다음 10개의 문자를 읽어서 출력함 print(f.read(10), end=' ') # 다음 10개의 문자를 읽어서 출력함 f.seek(0) # 포인터를 파일의 처음으로 이동함 print(f.read(10), end=' ') # 다음 10개의 문자를 읽어서 출력함 print(f.read(10), end=' ') # 다음 10개의 문자를 읽어서 출력함 f.close( ) # 파일을 close( ) 함수로 닫아줌 |
1번째 줄입니다. 2번째 줄입니다. 3번째 줄입니다. 4번째 줄입니다. 0 1번째 줄입니다. 2번째 줄입니다. |
줄 단위 텍스트 파일 입출력
writelines() 메서드
write() 메서드와 같이 지정한 파일에 출력하는 기능을 수행하지만 줄바꿈 문자(\n)를 만나면 줄을 바꿔서 출력하는 기능을 수행합니다.
리스트나 튜플과 같은 자료형을 파일로 저장할때 유용하게 사용합니다.
writelines( ) 메서드 예제 |
L1 = ['홍길동',' 서울시\n','홍길순',' 인천시\n', '김길동',' 부산시\n', '김길순',' 대구시'] # 문자열 리스트 생성함 L2 = [3,4,5,6,7,8] #정수 리스트 생성함 with open("C:/Test/Ltest.txt",'w') as f : # with 를 이용하여 쓰기 모드로 파일 객체를 생성함 f.writelines(L1) # writelines( ) 메서드로 문자열 리스트의 내용을 출력하여 저장함 # f.writelines(L2) # 리스트의 내용이 정수인 경우는 오류가 발생함 # with 문을 사용하여 파일 객체를 생성할 경우 f.close( ) 함수를 사용할 필요가 없음 |
for문을 이용하여 읽기
for문에 파일객체를 지정하여 줄 단위로 읽어 들이는 예제 | 출력 결과 |
with open("C:/Test/Ltest.txt", 'r') as f : # with 를 이용하여 읽기 모드로 파일 객체를 생성함 for line in f : # for 문에 파일 객체를 지정하면 한 줄씩 반복하며 읽어줌 print(line, end = ' ') # 줄바꿈 하지 않고 연결하여 출력함 |
홍길동 서울시 홍길순 인천시 김길동 부산시 김길순 대구시 |
readline() 메서드
주로 while 문과 같이 사용하여 파일로부터 한 줄씩 읽어 들이는 메서드입니다.
while 문 내에 readline() 메서드를 사용하여 한 줄씩 읽어 들이는 예제 | 출력 결과 |
with open("C:/Test/Ltest.txt",'r') as f : # with 를 이용하여 읽기 모드로 파일 객체를 생성함 while True : # while 문을 사용하여 무한 반복을 수행함 line = f.readline( ) # 한 줄을 읽어들임 print(line, end = ' ') # 출력 if line == ' ' : # 읽어 들인 값이 없는 경우는 반복문을 벗어남 break |
홍길동 서울시 홍길순 인천시 김길동 부산시 김길순 대구시 |
readlines() 메서드
readlines() 메서드는 파일로부터 한꺼번에 모든 내용을 읽어 들이는 메서드입니다.
파일로부터 한꺼번에 모든 내용을 읽어 들이는 readlines() 메서드 예제 |
with open("C:/Test/Ltest.txt",'r') as f : # with 를 이용하여 읽기 모드로 파일 객체를 생성함 tLists = f.readlines( ) # 파일에 있는 모든 줄을 하나의 리스트 항목으로 만들어 반환함 print(type(tLists)) # tLists 의 타입(형)을 물어봄 print(tLists) # 반환한 리스트 항목 전체를 출력함 |
![]() |
readlines() 메서드에 의해 반환된 전체 리스트를 반복문을 사용하여 처리하는 예제 | 출력 결과 |
with open("C:/Test/Ltest.txt",'r') as f : # with 를 이용하여 읽기 모드로 파일 객체를 생성함 tLists = f.readlines( ) # 파일에 있는 모든 줄을 하나의 리스트 항목으로 만들어 반환함 for line in tLists : # for 문을 이용하여 리스트의 항목을 반복 처리함 print(line, end = ' ') # 리스트의 각 항목을 출력함 |
홍길동 서울시 홍길순 인천시 김길동 부산시 김길순 대구시 |
print() 함수로 파일에 출력
print() 함수를 사용해서 파일에 데이터를 출력하는 예제 |
f = open("C:/Test/sprint.txt",'w') # 쓰기 모드로 파일 객체를 생성함 print("안녕하세요 ? ", file = f) # file 매개 변수를 이용하여 파일 객체를 지정하여 파일에 출력함 print("Python ", file = f) # 파일의 다음 위치(파일 포인터)에 출력을 수행함 print("꼭 정복합시다 !!! ", file = f) f.close( ) # 지정한 파일을 close( )함수로 닫아줌 |
'Python' 카테고리의 다른 글
Python의 객체 지향 (0) | 2022.07.04 |
---|---|
Python 예외 처리 (0) | 2022.07.03 |
Python 사전(dictionary) 자료형 (0) | 2022.07.01 |
Python 집합(set) (0) | 2022.06.30 |
Python 튜플 (0) | 2022.06.29 |
댓글