텍스트 파일 쓰기
- 텍스트 파일이 있을 때, 사용 순서
: 열기 > 읽기 or 쓰기 > 닫기
파일 열기 : open()
읽기 또는 쓰기 : read() / write()
파일 닫기 : close()
- 텍스트 파일 쓰기
- 파일 열기 : open('디렉토리', '모드')
( w: 쓰기모드 / r: 읽기모드 )
- w모드는 경로 내 그 이름 파일이 없으면 새로 생성한다
- file.write(' ')안에 쓰는 글은, 기존의 내용을 없애고 '덮어쓰기'한다.
*주의할 점 : 디렉토리 경로 copy할 때, 역슬래시(\)→슬래시( / )로 바꿔주기
📋실습 : 다음과 같이 시스템 시간과 일정을 텍스트 파일에 작성해 보자.
- time 모듈
- time.localtime : 현재시간
- tm_year, tm_mon, tm_mday
- 세련된 시간 표시 방식
- time.strftime()
- 연Y 월m 일d / 12시간I 24시간H 분M 초S 오전오후p
텍스트 파일 읽기
- read() 함수를 이용한 파일 문자열 읽기
- 숫자든 문자든, str(문자열)로 읽는다
- 열고 > 읽고 > 닫고
📋실습 : 다음 텍스트 파일에서 ‘Python’을 ‘파이썬’으로 변경해서 파일에 다시 저장해보자
- UnicodeDecodeError : 인코딩이 안맞는 경우 발생하는 에러
→ 해결법 : open('경로', 'r', encoding='UTF8')
- replace('Pyton', '파이썬') : 전체 다 바꾸기
replace('Pyton', '파이썬', 2) : 처음 2개만 바꾸기
- str 변수에 먼저 선언을 한 후,
open , write해서 바꾸고, close
텍스트 파일 열기
- 파일 모드 : 다양한 쓰기 모드, 읽기는 한 가지
- 1) w모드 : 덮어 쓰기
: Hello world!! 후 Hello Python!!으로 바뀜 (덮어씀)
- 2) a모드 : 덧붙여 쓰기
: Hello Python!! Hello data science!! (덧붙여짐)
- 3) x모드 :
: 기존파일이 있으면 에러가 남. 새로운 파일명으로 해야함.
: Nice to meet you!!
- 4) r모드 : 읽기
: str: Nice to meet you!!
📋실습 : 사용자가 입력한 숫자에 대한 소수를 구하고 이를 파일에 작성해보자
- 쓰려면, 구해진 숫자를 문자화 해야함 str(n)
- 소수를 구하는 코드
with ~ as문
- with ~ as문을 이용하면 파일 닫기(close)를 생략할 수 있다
📋실습 : 로또 번호 생성기 프로그램을 만들고 파일에 번호를 출력해 보자.
- 조건문 로직 : 5번째 수 까지는 ,를 찍어 연결하고, 6번째 수는 ,가 없고, 마지막 수는 bonus
writelines()
- writelines()는 리스트 또는 튜플 데이터를 파일에 쓰기 위한 함수이다
: writelines 그냥 쓰면 개행 없이 쭉 이어져서 써진다
f.writelines(item + '\n' for item in languages)
: 개행을 추가
📋실습 : 딕셔너리에 저장된 과목별 점수를 파일에 저장하는 코드를 작성하자
1) 세로 모양으로 저장
- 점수(숫자) str로 캐스팅 하기
- 딕셔너리의 key, value값을 사용.
2) 가로로 딕셔너리/리스트 그대로 저장
readlines(), readline()
- readlines() : 파일의 모든 데이터를 읽어서 리스트 형태로 반환한다
: 눈에 보이지 않는 개행까지 읽어옴.
: 리스트로 반환
- readline() : 한 행을 읽어서 문자열로 반환 한다.
: 라인이 공백이 아니라면 프린트 해라
: 한 행씩 읽어들인 것이 보여짐
: 이미 개행이 되어있는 파일이라, end=''처리를 해서 개행을 안하도록 처리
📋실습 : 파일에 저장된 과목별 점수를 파이썬에서 읽어, 딕셔너리에 저장하는 코드를 만들어보자
- 위에서는 그대로 읽어낸걸, 여기서는 딕셔너리로 형태를 바꾸는 작업이 추가된 것임
- split 키워드
- index가 0 : key가 되고, 1 : value가 되도록
- strip 키워드 : 그 값을 없앰. 잘라버림.
- 읽어낸 문자(숫자도 문자로 읽음)를 int로 캐스팅 하기
.
.
.
🔥제로베이스 데이터 사이언스 취업스쿨 13기🔥