겉바속촉

[PYTHON] 파이썬_파일 읽기 연습하기 본문

IT 일기 (상반기)/PYTHON

[PYTHON] 파이썬_파일 읽기 연습하기

겉바속촉 2021. 1. 5. 16:54
728x90
반응형

 

안녕하세요

겉바속촉입니다

!^^!

 

 

!!파이썬 시작하기!!

 

 

 

 

지난번에 배웠던

파일 읽기

 

이제 그 개념 활용해서 한 번 

실습을 해볼게요

 

 

2021/01/05 - [IT 일기 (상반기)/PYTHON] - [PYTHON] 파이썬_파일 읽기

 

[PYTHON] 파이썬_파일 읽기

안녕하세요 겉바속촉입니다 !^^! !!파이썬 시작하기!! 이번에는 파일 읽기에 대해서 알아보도록 하겠습니다 시작 전에 참고할 코드 (요 파일이 계속 등장할 예정) echo.py if __name__ == "__main__" : print("

2-juhyun-2.tistory.com

 

 

 

 

 

 

 


 

 

우선 다음과 같은 데이터 포함된 파일 존재

 

hopedale.txt 

Coloured fox fur production, HOPEDALE, Labrador, 1834-1842
#Source: C. Elton (1942) "Voles, Mice and Lemmings", Oxford Univ. Press
#Table 17, p.265--266
      22   
      29   
       2   
      16   
      12   
      35   
       8   
      83   
     166   

 

 

 

total_pelts.py 파일을 이제 작성합니다

다음과 같이 코드를 만들었습니다.

 

우선 주어진 텍스트를 첫 줄 부터 차근차근 읽어와야합니다

 

1. with open(파일,'r') as file --> 우선 텍스트 파일 읽어오기

2. 첫 줄은 그냥 설명문이니까 건너뛰기 --> file.readline()

3. 주석처리된 것들 읽어오면서 아무것도 하지말기

--> data = file.readline()

--> while data.startswith('#'):

          data = file.readline()

4. 주석처리 안된 것들은 이제 숫자들을 저장해주기

---> total_pelts = int(data.strip())     (strip으로 공백 없애주고)

5. 나머지 읽어가면서 더해주기

---> for data in file:

          total_pelts = total_pelts + int(data.strip())

6. 출력하기

 

 

 

전체코드

 

with open('./hopedale.txt', 'r') as file:
    # 첫번째 줄은 그냥 설명문이므로 건너뛴다.
    file.readline()

    # 줄 단위로 읽은 내용이 #으로 시작하는 경우
    # 아무런 처리를 하지 않는다.
    data = file.readline()
    while data.startswith('#'):
        data = file.readline()

    # 처음에 #으로 시작하지 않는 경우, data는 숫자를 저장
    # 즉, 처음으로 나온 숫자를 합계로 설정
    total_pelts = int(data.strip())

    # 나머지 숫자 데이터를 읽어서 합계에 추가
    for data in file:
        total_pelts = total_pelts + int(data.strip())

print("전체 모피의 수는 " + str(total_pelts) + "개입니다.")

 

 


 

이번에는 인터넷 상의 파일을 이용해보기

 

1. 우선 모듈 import 해오기  --> import urllib.request

2. url = ' '   --> url 주기

3. urlopen(url) 이용해서 with  urlib.request.urlopen(url)   as webpage :   라고 주기

           for문 활용해서 line에 url 읽어온 것들 line별로 넣어주기

              그리고 출력!!

 

 

 

전체 코드

import urllib.request

url = 'http://people.cs.pitt.edu/~wiebe/courses/CS0007/Lectures/hopedale.dat'

with urllib.request.urlopen(url) as webpage:
    for line in webpage:
        print(line)

 

 

하지만 우리가 디코딩하는 과정이 필요합니다

바이트 객체를 문자열로 변환시켜주는 거죠!!!

line.decode('UTF-8') 로 디코딩해주면 됩니다:)

 

import urllib.request

url = 'http://people.cs.pitt.edu/~wiebe/courses/CS0007/Lectures/hopedale.dat'

with urllib.request.urlopen(url) as webpage:
    for line in webpage:
        print(line.decode('UTF-8'),end="")
        

 

실행결과

 

 

url 사이트

 

728x90
반응형