데이터 취업 스쿨 스터디 노트 -(8) 파일 읽기,쓰기

테리·2024년 6월 11일

파이썬 데이터 형식(리스트, 튜플, 딕셔너리)

학습과 별개로 이해가 반드시 필요한 부분

리스트

  • 대괄호 []를 사용 ex) num = [20, 30, 13, 7]
  • 순서가 있기 때문에 인덱스를 통해 출력할 수 있다. ex) col[1]

튜플

  • 읽기 전용의 리스트
  • 소괄호 ()를 사용해서 만들며 처음 생성한 이후에는 수정 불가
  • 리스트 처럼 인덱스로 출력 가능
  • 연산도 가능함, 지우기도 가능

딕셔너리

  • 사전과 같이 두개의 쌍이 하나로 묶이는 구조
  • 중괄호 {}를 사용
  • key와 value의 쌍으로 이루어짐.
  • 리스트, 튜플과 달리 순서가 상관 없다.
  • print(딕셔너리명['키값']) 하면 이에 해당하는 value값 알 수 있음

텍스트 파일

텍스트 파일 쓰기

  • open('파일 경로/파일이름.txt', 'w')
  • 'w'가 의미하는 것은 내가 작성하겠다는 의미(write 모드)
  • 기존에 있는 문자를 다 없애버리고 새로운 문자로 덮어 씌운다.
  • 숫자로는 작성이 안되서 write(str())형태로 문자로 바꿔줘야함.
  • 개행할때는 write('\n')
    ex)
    file = open('C:/pythonEx/pythontxt/test.txt','w')
    #write 모드일 경우에 해당 파일 이름이 없으면 파일이 만들어짐
    #But read 모드일 경우에는 에러가 발생함
 strCnt = file.write('hello')
#file.close()로 닫아줘도 괜찮다.
#텍스트를 쓰고 난 다음에는 반환형 데이터가 있다.
#반환형 데이터를 확인할 필요는 없는데 몇글자 썼는지 반환해주는 것이다.
print(strCnt)
#결과: 5

파일 읽기

ex)
file = open('C:/pythonEx/pythontxt/test.txt','r')
str = file.read()
print(str)
file.close()

날짜 함수 팁!

import time
#1 time.localtime()
#2 time.strftime('%Y-%m-%d %H:%M:%S %p')

실습: 불러오고 수정하고 덮어 씌우기

텍스트 파일 열기

텍스트 파일을 어떤 목적으로 open 할지 정함.

'w': 쓰기 전용(파일이 있으면 덮어씌움)
'a': 쓰기 전용(파일이 있으면 덧붙임)
'x': 쓰기 전용(파일이 있으면 에러 발생)
'r': 일기 전용(파일이 없으면 에러 발생)

with~as 문

with~as 문을 이용하면 파일 닫기(close)를 생략할 수 있다.

ex)
with open('파일 위치/파일명.txt', 'w') as f:
f.write('python!!')

#f는 원래 file = open() 이렇게 활용할 때 사용하는 변수 file이랑 똑같은 거임.

writelines()

writelines()는 리스트(List) 또는 튜플 데이터를 파일에 쓰기 위한 함수이다.

for문을 사용할 필요 없이 리스트[], 튜플()을 작성해줌.

위 예시대로 하면 개행이 안됨. 개행이 되게 하려면
f.writelines(item + '\n' for item in languages)
로 변경해서 작성하면 됨,

실습

딕셔너리 형태로 그대로 저장하려고 하면

readlines(), readline()

중요!!
readline()은 처음 호출되면 파일의 첫줄을 읽어오고
또 호출되면 그 다음줄을 읽어오고
또 호출되면 그 다음줄을 읽어온다.

딕셔너리에 대한 이해가 없으면 문제나 코드를 이해하기 어렵다.
https://technfin.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%BD%94%EB%94%A9-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0%EC%B6%94%EA%B0%80%EC%88%98%EC%A0%95%EC%82%AD%EC%A0%9C%EC%B4%88%EA%B8%B0%ED%99%94-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

실습

QUIZ

[DS_파이썬4]
2번. 클래스에서 객체가 생성될 때 생성자를 호출하더라도 __int__() 은 자동호출이 되지 않는다. -> False

파이썬에서는 __int()__를 생성자(constructor)라고 한다.
생성자는 사용자가 따로 호출하지 않아도 객체를 생성할 때 자동으로 호출되는 메서드이다.
클래스를 만들 때 __init__이라는 이름으로 메서드를 정의하면 자동으로 생성자가 된다. 

0개의 댓글