리스트나 딕셔너리를 메모장에 저장하는 방법에 대해 설명하겠습니다. 데이터를 저장은 해야 하는데 엑셀에 하기엔 너무 무겁고 그렇다고 피클로 하면 데이터를 불러올 때마다 파이썬을 실행시켜야 하는데 이럴 때 가볍게 저장할 수 있는 곳이 메모장인 것 같습니다. 메모장에 출력 결과를 넣는 이유는 빠르게 저장할 수 있고 코딩도 간편합니다. 스피드가 필요할 땐 아주 적합합니다. 하지만, 많은 양의 데이터를 저장하기에는 조금 안 좋습니다. 정리가 안되서인데요. 메모장은 최소한의 기능만 있어서 데이터 자체가 복잡해지면 정리가 불가능합니다. 정리정돈이 필요한 데이터인 경우 파이썬으로 미리 정리하셔서 엑셀에 저장하는 걸 추천합니다. 리스트를 메모장에 저장하기리스트 안에 있는 원소들을 하나씩 저장하는 방법입니다. 먼저 준비한 리스트는 S&P500 종목명 리스트입니다. ex라 하겠습니다.
메모장에 넣어봅시다. with open을 쓰면 간단하게 메모장에 저장할 수 있습니다.
이렇게 저장을 했습니다. 아주 간단합니다. 메모장에 저장을 할 때 조심해야 할 것이 두 가지가 있는데 첫번째는 encoding 입니다. 파이썬은 기본이 UTF-8 이 아니어서 오류가 생깁니다. encoding을 지워보겠습니다.
encoding을 하지 않으면 위와 같이 UnicodEncodeError가 뜹니다. 영어권이 아닌 이상 왠만하면 enocding을 항상 붙이는 것이 좋습니다. 두번째는 한줄 띄기입니다. name 뒤에 '\n' 을 붙여놨습니다. 이걸 하지 않으면 메모장에서는 한줄을 띄지 않습니다.
줄 띄어쓰기를 하지 않아서 어디가 시작이고 끝인지 알 수 없게 됩니다. 딕셔너리 메모장에 저장딕셔너리에 있는 내용을 딕셔너리처럼 메모장에 넣어봅시다. 리스트처럼 원소를 가져오면 바로 저장하는 방식으로는 딕셔너리 저장을 할 수가 없습니다. 문자열로 형태를 만들어 저장하는 방법으로 가야합니다. 준비한 딕셔너리는 S&P500 의 코드와 종목명으로 구성된 딕셔너리입니다.
이 형태 그대로 가지고 가야합니다. f-string을 이용하겠습니다. 딕셔너리 내용을 그대로 가져올 수 있습니다.
메모장에 저장할 때는 문자열로 만들어놓으면 왠만하면 다 저장됩니다. 그 특징을 잘 이용하면 딕셔너리뿐만 아니라 다른 출력결과도 위와 같은 방식으로 하면 다양한 형태(그래봤자 문자열 종류지만)로 저장할 수 있습니다. 불러오기이제 다시 메모장에 있는 내용을 파이썬으로 불러오겠습니다. 불러오는 방법은 세가지가 있습니다.
모두 문자열을 불러오겠으나 약간 출력하는 방식이 다릅니다. 1.readline()readline은 하나씩 출력하는 방식입니다.
위와 같이 하면 첫줄만 출력이 됩니다. 모든 줄이 나오게 하고 싶다면 while을 이용합니다.
하나씩 해서 모든 줄이 나왔습니다. 2. readlines이번엔 readlines 함수입니다. 각 줄을 리스트에 담아줍니다.
리턴이 리스트이지만 \n 까지 가져오기 때문에 약간 번거로운 부분이 있긴합니다. 3. readread는 파일 내용 전체를 문자열로 출력해줍니다.
하나도 빠짐없이 모두 하나의 문자열으로 나오게 됩니다. 오류저장할 때도 인코딩을 했듯이 불러오기를 할 때도 encoding을 해야할 수도 있습니다. 이건 무조건은 아니라서 위에 내용에 넣지는 않았지만 메모장의 내용을 불러오기 위해 open을 요청하면 다음과 같이 오류가 뜰 수도 있습니다. 코덱을 내 맘대로 할 수는 없고 이럴 때는 다음처럼 encoding='UTF8' 을 넣어주면 됩니다.
리스트와 딕셔너리를 메모장에서 저장하고 불러오는 방법을 알아보았습니다. 관련포스팅 [Python/기초] - 문자열 포맷 출력 [Python/기초] - [Python] while 반복문 쓰기 [Python/기초] - [Python] 문자열(string) 다루기 |