본문 바로가기
인공지능/파이썬 기초

파일 입출력

by hyunji00pj 2024. 10. 2.

KDT_4기 파이썬 기초 1001(2)

2024.10.01 수업 내용 복습일기 두번째

 

오늘은 파일의 입출력에 대해 알아보자

 

1. 파일 입출력

파이썬에서 파일 입출력은 다양한 용도로 사용됩니다. 텍스트 파일, 바이너리 파일, CSV 파일, JSON 파일 등을 읽고 쓸 수 있습니다.

 

1-1. 파일 열기

파일을 열려면 open 함수를 사용합니다.

 

f = open("파일명", "모드")

파일명: 열고자 하는 파일의 이름이나 경로
모드: 파일을 어떻게 열 것인지를 지정

r: 읽기 모드 (기본값)
w: 쓰기 모드 (파일이 있으면 덮어쓰기)
a: 추가 모드 (파일의 끝에 내용을 추가)
b: 바이너리 모드 (텍스트가 아닌 바이너리 데이터를 읽고/쓸 때 사용)
t: 텍스트 모드
+: 읽기와 쓰기 모드

 

1-2. 파일 쓰기

 

example파일을 텍스트 파일로 생성( open() ) 후  쓰기 모드('wt')로 활성화 되고

Hello 파이썬!\n

문장을 써넣었습니다 파일은 항상 

f.close()

를 통해 닫아주어야 다른 곳에서 열 때 오류가 나지 않기에 반드시! 파일을 연 후에는 .close()해줍니다!

f = open('example.txt','wt')
f.write('Hello 파이썬!\n')
f.close() #파일을 닫아야 저장이 완료됨
f = open('example2.txt','w')
f.writelines(['라인1\n','라인2\n','라인3\n'])
f.close()
f = open('example3.txt','w')
for i in range(10):
  f.write('파일 쓰기 테스트: '+ str(i) + '\n')
f.close()
print('example3.txt 파일에 쓰기 완료')

 

위의 세개의 셀을 실행하면 코랩 파일 안에 아래 사진처럼 파일이 생깁니다

각각의 파일 안에 셀의 내용이 잘 실행되어 텍스트가 쓰여진 것을 확인 할 수 있습니다

1-3. 파일 읽기

'rt'를 통해 파일안의 내용을 읽어 올 수 있습니다

f = open('example.txt','rt')
data = f.read()
print(data)
f.close()

f = open('example2.txt','rt')
data = f.read()#매개변수가 없을 경우 여러줄을 한꺼번에 읽음
print(data)
f.close()

 

f = open('example2.txt','rt')
data = f.read(2)#매개변수 만큼 읽어옴(유니코드의 글자수 만큼 읽어옴)
print(data)
f.close()

문제

read(5) 메서드 사용하여 example3.txt의 모든 글자를 출력하는 프로그램을 작성해보자

f = open('example3.txt','rt')
while True:
  data = f.read(5)
  if not data:
    break
  print(data,end='')
f.close()

2. with문 사용하기

  • 파일을 보다 안전하고 깔끔하게 다루는 방법
  • 컨텍스트 매니저를 사용하여 파일을 열고, 파일 작업이 끝나면 자동으로 파일을 닫아주는 역할
  • 파일을 열고 나서 오류가 발생하더라도 파일을 자동으로 닫아줌
  • close() 메서드를 호출하지 않아도 되므로 코드가 간단해지고 깔끔해짐
with open('word.txt','w') as f:
  while True:
    data = input('단어를 입력하세요: ')
    if data.lower() == 'quit':
      break
    f.write(data + '\n')

위의 셀이 잘 실행되어 파일도 생성되고 파일 안에 텍스트도 잘 들어갔음을 확인 할 수 있다

while문을 사용하여 매개변수를 사용하면서 파일의 텍스트를 모두 읽어 올 수 있게 코드를 작성해 보았다

f = open('example3.txt','rt')
while True:
  data = f.read(5)
  if not data:
    break
  print(data,end='')
f.close()

with를 사용해  파일을 열어 보았다 파일 작업이 끝나면 자동으로 파일을 닫아주기 때문에 close() 메서드를 호출할 필요가 없다

with open('example3.txt','rt') as f:
  while True:
    data = f.read(5)
    if not data:
      break
    print(data,end='')

리스트에 파일의 텍스트 내용을 while과 if문을 사용해 넣어보았다

with open('word.txt','r') as f:
  lines = []
  while True:
    line = f.readline()
    if not line:
      break
    print(line,end='')
    lines.append(line.strip())

print(lines)

 

with open('word.txt','r') as f:
  lines = f.readlines()
  print(lines)

 

li = []
for i in lines:
  li.append(i.replace('\n',''))
print(li)

3. 예외 처리화 함께 사용하기

파일을 사용하다 보면 수많은 예외가 발생하기도 한다 해서 예외 처리와 함께 파일을 사용해보았다

try:
  with open('nofile.txt','r') as f:
    data = f.read()
    print(data)
except FileNotFoundError:
  print('파일이 존재하지 않습니다')

 

'인공지능 > 파이썬 기초' 카테고리의 다른 글

변수 타입 어노테이션  (4) 2024.10.02
파일 입출력을 이용한 단어장 만들기  (4) 2024.10.02
파이썬 모듈  (0) 2024.10.01
파이썬의 예외 처리  (0) 2024.10.01
스페셜 메서드  (0) 2024.10.01