rueki

day5-3. 파일 입출력 기본 - 파일 입력 본문

python

day5-3. 파일 입출력 기본 - 파일 입력

륵기 2020. 1. 10. 00:03
728x90
반응형

파이썬을 사용하면서 파일을 읽고 쓰는 경우가 많을 것이다. csv 읽기, text 읽기 등등 많지만 요즘은 많은 라이브러리가 있음에 따라 사용이 편하지만 파이썬에서의 파일 입출력은 꼭 알아두는 것이 이후에도 편할 것이라 생각이 든다.

 

파일 입출력의 기본 구조를 알아보자

 

파일 변수 = open(파일경로, 'r'/'w'/'a', encoding='utf8'/'cp949)
파일변수.파일입출력함수(옵션)

 

1. 파일 읽기

  • 파일 변수 생성
  • 파일 변수 = open(파일경로, 'r')
  • 파일변수.read() =>파일 전체 문자열 구조 => 문자열
  • 파일변수.readline() => 첫 줄만 읽기 => 문자열
  • 파일변수.readlines() => 각 행이 리스트 구조로 변경 => 리스트

예제를 통해서 파일을 읽어보자.

 

Yesterday.txt
0.00MB

 

먼저 예제에 사용할 파일을 받는다. 이제 파일을 읽어보도록 하자.

# 파일변수.read()
f = open('../Yesterday.txt','r')

# encoding은 보통 cp949나 UTF8로 한다. open() 괄호 안에 encoding='UTF8' 로 설정 가능

#문서 출력
data = f.read()
print(data,'\n')

이로써 문서를 출력할 수 있을 것이다.

여기서 중요한 것은 파일을 열었을 때는 끝에 꼭 닫아주어야한다.

닫아주는 것은 파일변수.close() 를 통해서 할 수가 있다.

 

sample.txt
0.01MB

f = open('data/sample.txt','r')
data = f.readline()
print('첫줄만 출력 : ',data)

이는 파일의 첫 줄만 읽는 것을 구현해보았고 readlines를 통해 여러줄을 받아보자.

f = open('data/sample.txt','r')
data3 = f.readlines()
print('\n전체 출력 : \n\n', data3, '\n',type(data3))

 

파일 읽기에 대해 기본적으로 알아보았으니 데이터의 합과 평균을 구하는 함수를 구현해서 파일을 읽어와서 그 안의 데이터로 값을 구해보도록 하자.

data_eng.txt
0.00MB
data_kor.txt
0.00MB

 

def sumAvr(dirc,en):
    result = []
    f = open(dirc,'r',encoding=en)
    data = f.readlines()
    for i in data:
        result.append(int(i))
    
    sum = 0
    for i in result:
        sum += i
    avg = float(sum/len(result))
    
    print(f'파일명 = {dirc}')
    print(f'데이터 수 = {len(result)}')
    print(f'합 = {sum}')
    print(f'평균 = {avg:.2f}')

위는 파일 경로와 인코딩을 어떻게 할 지에 대한 인자를 받아서, 

파일을 읽고, 읽은 것을 리스트 안에 저장해서 리스트 데이터를 기반으로 값을 구하도록 하였다.

 

sumAvr('../data_eng.txt','cp949')
print('*'*30)
sumAvr('../data_kor.txt','cp949')

만든 함수를 통해서 파일을 입력받고 값을 구해낼 수가 있을 것이다.

 

728x90
반응형

'python' 카테고리의 다른 글

예외 처리 (Exception)  (0) 2020.05.19
day5-4. 파일입출력 기본 - 파일 쓰기  (0) 2020.01.12
day5-2. map 함수, reduce 함수  (0) 2020.01.09
day5-1. 기타 내장 함수  (0) 2020.01.07
day4-2. lambda 함수, 내장함수  (0) 2020.01.06
Comments