Python

주식 알고리즘 만들기 - 6. 1) 파일 다루기 - 읽기

제이아이엔 2022. 10. 11. 17:29
반응형

2022.10.11 - [Python] - 주식 알고리즘 만들기 - 5. 5) 클래스 연습문제

 

주식 알고리즘 만들기 - 5. 5) 클래스 연습문제

2022.10.11 - [Python] - 주식 알고리즘 만들기 - 5.4) 클래스 (상속) 출처 : https://wikidocs.net/3465 1) 연습문제 문제 6-1 다음의 조건을 만족하는 Point라는 클래스를 작성하세요. Point 클래스는 생성자를..

jiain.tistory.com

https://wikidocs.net/2578

 

1) 파일 읽기

컴퓨터에서 파일이란 무엇인가요? 아직 프로그래밍에 대해서는 잘 모르겠지만 한글 파일(.hwp) 또는 마이크로소프트의 워드 파일(.doc)이란 말은 종종 들어 봤을 겁니다. ...

wikidocs.net

 

 

#파일 읽기

이번 포스트는 txt 파일 내용을 python으로 불러오는 방법을 다룰 계획입니다.

 

먼저, txt 파일을 만들고 다음과 같은 내용을 넣고 저장을 하도록 하겠습니다.

 

Python에서 파일을 읽기 위해서 경로와 이름, 확장자 명을 알고 있어야 합니다. 

경로를 모르시겠다고요? 마우스 우클릭 - [속성] 을 눌러서 경로를 확인할 수 있습니다.

 

경로 위치가 C:\Users\sd120\OneDrive\바탕 화면 이라는 것을 확인을 했고, 이제 본격적으로 python을 통해서 읽어보도록 하겠습니다.

 

open 함수의 두 번째 인자에는 파일을 여는 모드를 전달합니다. 예를 들어, 파일을 읽기 모드로 열려면 'r'을 지정하면 되고 텍스트 파일인 경우에는 't'를 지정하면 됩니다. open 내장 함수는 파일에 대한 정보를 담고 있는 객체를 반환하는데 이를 바인딩하기 위해 f라는 이름의 변수를 사용하겠습니다.

 

세번째 인자에는 저장할 때 인코딩이 UTF-8인지 아닌지 확인을 해야합니다. 

UTF-8인데 encoding = ' ' 을 입력하지 않으면 파일을 읽어내는 과정에서 오류가 발생하게 됩니다. 참고바랍니다.

f = open('C:\\Users\\sd120\\OneDrive\\바탕 화면\\LG생활건강우.txt', 'rt', encoding = 'utf-8')

 

이제 내용을 읽기 위해서 readlines()함수를 사용해야합니다.  readlines 메서드는 파일을 읽어서 각 라인을 리스트에 넣은 후 리스트를 리턴합니다.

 


lines = f.readlines()
         
lines
         
['LG생활건강우\n', '날짜: 2022-10-11\n', '종가: 311500\n', '전일대비: -35000 -10.10%']

 

이제 앞서 배운 for문을 활용해서 리스트의 각 데이터를 읽어서 출력해보겠습니다.

 

 

for line in lines : 

 print(line)



LG생활건강우

날짜: 2022-10-11

종가: 311500

전일대비: -35000 -10.10%

 

결과값을 출력을 했습니다. 그런데 무엇인가 이상하지 않나요?

readlines()으로 출력하니 \n 과 같이 출력되어 중복이 발생해서 여백이 많이 보입니다. 없애고싶은 욕구가 생기기 시작하죠

자 어떻게 하면 없앨 수 있을까요?

바로 리스트의 \n을 제거해서 출력하면 해결할 수 있습니다. print(line, end= "") 로 \n을 없애고 출력해보겠습니다.

for line in lines:
 print(line, end="")

         
LG생활건강우
날짜: 2022-10-11
종가: 311500
전일대비: -35000 -10.10%

아무런 문제없이 깔끔하게 출력된것을 볼 수 있습니다. 

end 이외에도 또 다른 방법이 있는데요. 그것은 바로 우리가 배운 split()함수입니다. 거의 처음에 배워서 지금쯤 기억이 가물가물 해졌을 지 모르는 여러분들을 위해서 준비를 했습니다.

 

for line in lines:
    nline = line.split('\n')[0]
    print(nline)


LG생활건강우
날짜: 2022-10-11
종가: 311500
전일대비: -35000 -10.10%

앞서 배운 내용도 활용하니까 알면알수록 재미가 있죠?

728x90