본문 바로가기
프로그래밍언어/python

[파이썬] 파일입출력(file IO) 읽고 쓰기

by 연어바케트 2021. 1. 23.
반응형

1.파일 생성하기

  • 파일을 생성하기 위해 파이썬 내장함수인 open을 사용한다.

 

test_file = open("파일","파일모드"

 

  • 파일모드 
    • 'r' : 읽기모드. 파일을 읽기만함. (파일이 없으면 에러)
    • 'r+' : 읽기 or 쓰기 모드. (파일이 없으면 에러)
    • 'w' : 쓰기모드. 파일을 쓰기만함. (파일이 없으면 생성)
    • 'w+' :  읽기 or 쓰기 모드. (파일이 없으면 생성)
    • 'a' : 추가모드. 파일의 마지막에 새로운 내용을 추가. (파일이 없으면 생성)
    • 'a+' : 읽기 or 추가모드. (파일이 없으면 생성)

 

2. 파일 쓰기

  • 파일을 w 모드로 open하여 사용한다. 
  • print("문자열",file = open한 파일명)을 사용하여 파일 쓰기를 할수 있다. 
  • write 문을 사용하여 입력할 수 있다. 
print문 이용 예제코드
score_file = open("score.txt", "w", encoding="utf8")
print("수학 : 0", file = score_file)
print("영어 : 50", file = score_file)
score_file.close()

※ 파일 사용이 끝이 났으면 close() 함수를 이용하여 파일을 닫아줘야한다. 

 

print문 이용 실행결과

score.txt 파일이 생성되고 print문에 적은 문자열이 적혀있는걸 볼 수 있다. 

 

 

write 이용하여 파일 쓰지 예제코드

 

score_file = open("score2.txt", "w", encoding="utf8") 
score_file.write("과학 : 80\n")
score_file.write("코딩 : 100")
score_file.close()

 

write 이용하여 파일 쓰지 실행결과

 

3. 파일 읽기

  • open 시 파일모드를 'r'로 설정한다.
  • 파일 읽기는 전체 다 읽기와 한줄 읽기가 있다. 
  • 전체 읽기 : read() 함수를 이용한다. 
  • 한 줄 읽기 : readline() 함수를 이용한다.
전체 읽기 예제코드
score_file = open("score.txt", "r", encoding="utf8") 
print(score_file.read()) #한번에 다 읽어 올때 
score_file.close();

 

전체 읽기 실행결과

파일 쓰기 모드 예제에서 만들었던 파일 전체를 읽어와 출력해주는 모습을 볼 수 있다.

 

한 줄 읽기 예제코드

한 줄만 읽기 때문에 2줄을 읽기 위해서는 readline()를 두 번 사용한다.

score_file = open("score.txt", "r", encoding="utf8") 
print(score_file.readline(), end="")#한줄 읽고, 커서는 다음 줄로 이동하기 때문에 이동하지 않도록 설정
print(score_file.readline())
score_file.close()

 

한 줄 읽기 실행결과

 

4.반복문을 이용하여 읽고 쓰기

  • 한 줄 읽기를 할 시 라인 수 만큼 readline()을 해줘야하기 때문데 반복문을 사용하면 편하다.
  • write 시 file.write(str) 또한 쓰고 싶은 줄 수 만큼 써야하기 때문에 반복문을 사용하면 편하다.
한 줄 읽기 반복문 예제코드

readline()으로 읽은 문자열들은 리스트 형태로 저장되어 있다. 

#while 문을 이용한 한 줄 읽기
score_file = open("score.txt", "r", encoding="utf8")
while True:
    line = score_file.readline()
    if not line:
        break
    print(line,end="")
score_file.close();
 
#for문을 이용한 한 줄 읽기
score_file = open("score.txt", "r", encoding="utf8")
lines = score_file.readlines() #list 형태로 저장
for line in lines:
    print(line, end="")
score_file.close();

 

한 줄 읽기 반복문 실행결과

반복문을 이용하여 한 줄씩 읽어 출력한 결과를 볼 수 있다. 

 

 write 반복문 사용 예제코드
list_score = ["과학 : 0","영어 : 10", "도덕 : 100"]
score_file = open("score3.txt","w",encoding="utf8")
for line in list_score:
        score_file.write(line+"\n")
score_file.close()

 

write 반복문 사용 실행결과

 

반응형

댓글