rueki
day5-3. 파일 입출력 기본 - 파일 입력 본문
728x90
반응형
파이썬을 사용하면서 파일을 읽고 쓰는 경우가 많을 것이다. csv 읽기, text 읽기 등등 많지만 요즘은 많은 라이브러리가 있음에 따라 사용이 편하지만 파이썬에서의 파일 입출력은 꼭 알아두는 것이 이후에도 편할 것이라 생각이 든다.
파일 입출력의 기본 구조를 알아보자
파일 변수 = open(파일경로, 'r'/'w'/'a', encoding='utf8'/'cp949)
파일변수.파일입출력함수(옵션)
1. 파일 읽기
- 파일 변수 생성
- 파일 변수 = open(파일경로, 'r')
- 파일변수.read() =>파일 전체 문자열 구조 => 문자열
- 파일변수.readline() => 첫 줄만 읽기 => 문자열
- 파일변수.readlines() => 각 행이 리스트 구조로 변경 => 리스트
예제를 통해서 파일을 읽어보자.
먼저 예제에 사용할 파일을 받는다. 이제 파일을 읽어보도록 하자.
# 파일변수.read()
f = open('../Yesterday.txt','r')
# encoding은 보통 cp949나 UTF8로 한다. open() 괄호 안에 encoding='UTF8' 로 설정 가능
#문서 출력
data = f.read()
print(data,'\n')
이로써 문서를 출력할 수 있을 것이다.
여기서 중요한 것은 파일을 열었을 때는 끝에 꼭 닫아주어야한다.
닫아주는 것은 파일변수.close() 를 통해서 할 수가 있다.
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))
파일 읽기에 대해 기본적으로 알아보았으니 데이터의 합과 평균을 구하는 함수를 구현해서 파일을 읽어와서 그 안의 데이터로 값을 구해보도록 하자.
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