(파이썬) 텍스트 파일 읽기 쓰기
📍 intro
영타 연습을 위해 따로 설치가 필요없는 온라인용 말랑말랑 한컴타자⌨ 를 사용했다.
불러온 글
탭에 원하는 txt 파일을 업로드해서 타자 연습을 할 수 있게 되어있다.
파일 규격을 UTF-8로 변환 후 불러와야해서 파이썬 파일 입출력을 활용했다.
겸사겸사 파이썬에서 파일을 열고 저장하는 방법을 복습해보자 ❕
📁 파일 읽기와 쓰기
파일 읽기(read)는 파일을 여는 것, 파일 쓰기(write)는 파일 저장을 의미한다.
좀 더 큰 개념으로 살펴보면,
- 파일 열기 : 하드 드라이브(HD, 저장공간)에 있는 데이터를 램(RAM, 메인 메모리)에 입력하는 것 : 📥Input
- 파일 쓰기 : 램에서 사용하고 있는 데이터를 드라이브에 내보내어 저장하는 것 : 📤Output
📲 인코딩과 디코딩
컴퓨터는 문자를 못 읽는다. 숫자 코드로 변환해서 알려줘야 한다.
이러한 문자와 숫자 간 변환 방식을 문자코드라고 한다.
문자를 코드로 변환하는 것이 인코딩(encoding), 코드를 문자로 변환하는 것이 디코딩(decoding)이다. 만약 utf-8로 인코딩한 파일이 있다면, 이는 utf-8 방식으로만 디코딩할 수 있다.
파일 I/O와는 다른 개념인 점을 유의하자
처음에 파일 저장과 디코딩이 헷갈렸는데(..💻🖥) 코드를 문자로 바꾸는 디코딩은, 파일 인식 과정에서 컴퓨터가 하는 일이지 내가 하는게 아니었다. 난 그저 인코딩만 잘 해서 컴퓨터에게 넘겨주면 될 뿐
모든 텍스트 파일은 특정한 규격의 문자코드, 인코딩 방법을 갖는다.
인코딩 방식 | 문자 코드 | 언어 |
---|---|---|
UTF8⭐ | 유니코드 | all |
CP949 | ASCII, ANSI | 한글 등 |
EUC-KR | EUC-KR | 한글, 영어, 한문 등 |
📌 open() 함수
-
open() 함수를 사용해서 파일을 열거나 저장할 수 있다. open() 함수에는 모드 설정값을 사용한다.
모드 의미 'w' 쓰기(write, 저장) 'r' 읽기(read, 열기) 'a' 추가(append, 파일 마지막에 새로운 내용 추가) -
open() 함수는 with 구문과 함께 사용하면 훨씬 오류를 줄일 수 있다. with 블럭을 빠져나가면 알아서 close가 실행되기 때문이다. __enter__(), __exit__()를 자동 호출해주기 때문에 예외발생 또는 resource release 누락 시에도 정상 처리해준다. 즉, try / except / finally를 명시적으로 사용한 것과 같은 효과를 얻게 된다.
-
파일 읽기는 .read() 말고도 readline(), readlines(), for문을 이용한 방법이 있다.
- .readline()는 txt파일에 있는 첫번째 줄만 가져오고
- .readlines()는 txt파일에 있는 모든 텍스트를 한 줄 단위로 끊어서 리스트에 저장해주고
- for문 사용하면, 텍스트 파일의 처음부터 끝까지 자동으로 한 줄씩 내려간다
with open("data/test.txt", 'r', encoding='UTF8') as f:
for line in f:
print(line)
📂 open() 함수로 파일 인코딩 방식 바꾸기
타자 연습에 많이 쓰는 소설 <무진기행>, <어린왕자>의 텍스트 파일을 구했다. 인터넷에 돌아다니는 걸 다운받아서 써도 되고, 좋아하는 뮤지션의 가사를 긁어다가 메모장으로 txt파일을 만드는 방법도 있겠다.
그럼 파일 I/O를 활용해서 인코딩 방식을 바꿔보자.
- 구한 텍스트 파일을 "어린왕자.txt" 파일로 저장해주었다.
-
"어린왕자.txt"의 인코딩 방식을 확인한다. (utf8이 필요한 상황)
-
Jupyter Notebook에서 파이썬 코드 새로 열기
텍스트 파일은 코드(ipynb)와 같은 경로에 있어야 편하다.
-
기존 데이터를 담은 변수 만들기
r
모드로 "어린왕자.txt" 파일을 읽어온다.- as 뒤에 이 파일을 인지할 이름 little을 선언한 뒤, little이라는 이름의 데이터를 read하여 data 변수에 담기
with open("어린왕자.txt", "r") as little:
data = little.read()
- 새로운 파일에 데이터 쓰기
w
모드인채로 open() 실행을 먼저 한다.- "The little prince.txt"라는 파일은 아직 내용이 없는 텍스트 파일이다.빈 txt파일에 연계된 객체 이름을 fileneme로 두고, 이 객체에 .write() 함수를 써서 data 변수에 담긴 데이터를 써주는(=저장해주는) 것이다.
- 이때 encoding을 지정하면 파일 규격이 바뀐다.
with open("The little prince.txt", 'w', encoding="utf8") as filename:
filename.write(data)
- 파일 "The little prince.txt"(utf8)를 한컴타자에 불러오기 후 사용
📇 결론) 영타 연습해서 빠른 타수로 코딩 시간 단축하자( ͡° ͜ʖ ͡°)ㅎㅎ
Author And Source
이 문제에 관하여((파이썬) 텍스트 파일 읽기 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hey-wan/파이썬-텍스트-파일-읽기-쓰기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여((파이썬) 텍스트 파일 읽기 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hey-wan/파이썬-텍스트-파일-읽기-쓰기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)