반응형
파이썬을 사용하다 보면
데이터를 가지고 와서 활용하는 경우가 빈번하다.
파이썬에서 파일이란 어떤 것인지 알아보도록 하겠다.
01. 파일이란,
저장을 통해 하드디스크에 데이터를 영구 보존 시키는 것
02. 파일에서 데이터를 읽는 방법
file = open("test.txt", "r")
all = file.read()
print(all)
file.close()
open( ) : 파일 열기
close( ) : 파일 닫기
* 파일을 열어서 사용하고 있으면 다른 프로그램은 파일에 접근할 수 있다.
그러므로 파일 사용이 끝난 후에는 꼭 close() 함수로 닫는 것이 좋다.
기본적인 파일 모드
"r" : 읽기 모드, 파일 처음부터 읽음
"w" : 쓰기 모드, 파일 처음부터 쓴다.
만약 파일이 기존에 존재할 시 기존 내용이 삭제된다.
"a" : 추가 모드, 파일 끝에 쓴다. 파일이 없으면 새롭게 생성된다.
데이터 읽기
read( ) : 전체 텍스트 읽기
read( 숫자 ) : 전체 텍스트에서 숫자 이전의 인덱스까지 문자를 읽음
readlines( ) : 파일에 저장된 각 줄이 리스트 안에 저장.
한 번에 파일의 모든 줄을 읽는다. 문자열로 반환
➤ ['어제 오늘 날씨가 화창하다.\n', '그러나 다음 주부터 장마가 시작된다.\n', ...]
03. 파일에서 한 줄씩 읽기
file = open("test.txt", "r")
line = file.readline( ).rstrip( )
while line != "" :
print(line)
line = file.readline( ).rstrip( )
file.close( )
여기서
rstrip( ) 메서드는 "줄 맨 끝에 있는 줄 바꿈 기호(\n)를 삭제하고 읽게 해 준다.
파일에서 데이터를 읽을 땐 파일 객체를 모두 문자열로 간주하여 읽는다.
따라서 for 반복문을 사용해도 같은 결과를 나타낼 수 있다.
file = open("test.txt","r")
for line in file:
line = line.rstrip( )
print(line)
file.close( )
04. 파일에서 데이터 쓰고 추가하기
file = open("test.txt", "w")
file = open("test.txt", "a")
"w" : 데이터 쓰기
"a" : 데이터 추가
데이터 쓰기는 다음과 같다.
file = open("test2.txt", "w")
file.write("올해 장마는 두 달 동안 지속될 예정이다. \n")
file.write("따라서 습도가 매우 높을 전망이다. \n")
file.write("각 가정에서는 습도 조절에 유의해 주길 바란다. \n")
file.cloes( )
데이터 쓰기는 "test2.txt" 파일이 기존에 있다면,
기존의 내용이 삭제된 후 새롭게 내용을 작성한다.
기존에 없는 새로운 파일 시
새로운 파일을 만들어 내용을 작성한다.
데이터 추가는 다음과 같다.
file = open("test2.txt", "a")
file.write("내일 날씨입니다. \n")
file.write("내일은 무더운 기운과 함께 폭염주의보가 내려질 전망입니다. \n")
file.write("바깥 외출 시 양산과 잦은 수분 보충이 필요합니다. \n")
file.close()
데이터 추가는 "test2.txt" 데이터 파일 제일 끝 부분에 새롭게 데이터를 추가한다.
05. 파일에서 단어 읽기
split()
메서드를 사용하면,
공백 문자를 이용하여 문자열에서 단어를 분리한다.
예를 들면,
문장 " 바깥 외출 시 양산과 잦은 수분 보충이 필요합니다"는
file = open("text.txt", "r")
for line in file:
line = line.rstrip( )
word_list = line.split( )
for word in word_list:
print(word)
file.close( )
>> 바깥
외출
시
양산과
잦은
수분
보충이
필요합니다.
결과로 반환된다.
06. directory 속 파일 처리
os.listdir()
➤ 디렉토리 안의 모든 파일을 얻을 수 있다.
import os
a = os.listdir( )
이를 활용하여 디렉토리 안에서 특정 단어를 사용한 문장을 찾아볼 수도 있다.
07. cvs 파일
파일 형식이 txt가 아닌 csv 일 때,
보통 pandas를 사용하여 csv 파일을 읽고 처리하지만,
pandas를 사용하지 않고 파이썬에서 처리하는 방법도 있다.
import csv
f=open('text.csv')
data = csv.reader(f)
for row in data:
print(row)
f.close( )
csv 모듈을 불러와서
csv 파일을 열어 변수에 저장
reader( ) 함수를 통해 데이터를 읽을 수 있다.
만약 UnicodeDecodeError: 'utf-8' codec can't decode byte 가 떴을 때,
이는 인코딩 오류이다.
해결하기 위해서는 인코딩 포맷을 찾아서
encoding = ' '을 통해 변경해줘야 한다.
인코딩 포멧 찾는 방법은 다음과 같다.
import chardet
with open('파일 명.csv', 'rb') as rowdata:
result = chardet.detect(rowdata.read(1000))
print(result)
반응형
'studies' 카테고리의 다른 글
[프롬프트 엔지니어링] LLM 속 Encoding과 Decoding (1) | 2024.03.27 |
---|---|
[WordSmith] Corpus(코퍼스)와 WordSmith Tool(워드스미스) (1) | 2023.08.15 |
[NumPy] 02. 넘파이 배열 인덱싱과 슬라이싱(Arrays Indexing, Arrays Slicing) (0) | 2023.06.29 |
[NumPy] 01. 넘파이란 무엇인가. (0) | 2023.06.29 |
플립 러닝 기반 수업 모형 (0) | 2022.06.15 |