728x90
파일
- 텍스트 파일 : 텍스트 에디터로 열 수 있음
- 바이너리 파일 : 이미지, 동영상, 워드, 엑셀, PDF
file = open(filename,mode)
- mode : r, w, a
- r(read), w(write), a(append)
file = open("test.txt","w", encoding='utf-8')
file.write("안녕하세요")
file.close()
csv 파일 읽어오기를 다음 코드와 같이 실행했더니 에러가 발생한다.
import csv
# 예제1
with open('./resource/sample1.csv', 'r') as f:
reader = csv.reader(f)
# 확인
print(reader)
print(type(reader))
print(dir(reader)) # __iter__ 확인
for c in reader:
print(c)
Exception has occurred: UnicodeDecodeError
'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
읽어온 파일 인코딩 모드가 UTF-8 이 아니라서 생긴 현상이다.
그래서 코드를 다음과 같이 수정했더니 정상적으로 읽어온다.
import csv
# 예제1
with open('./resource/sample1.csv', 'r', encoding='euc-kr') as f:
reader = csv.reader(f)
# next(reader) Header 스킵
# 확인
print(reader)
print(type(reader))
print(dir(reader)) # __iter__ 확인
for c in reader:
print(c)
파일을 읽어올 때 csv 에서 c의 의미는 comma 이다.
만약 읽어온 파일에서 구분자가 | 로 되어 있다면 어떻게 해야 할까?
delimiter 로 구분자를 명시해주면 된다.
import csv
# 예제1
with open('./resource/sample2.csv', 'r') as f:
reader = csv.reader(f, delimiter='|')
for c in reader:
print(c)
728x90
'파이썬 > Python 기초' 카테고리의 다른 글
[파이썬기초] SQLite 사용한 텍스트 기반 간단 쇼핑몰 예제 (0) | 2021.06.27 |
---|---|
[Python] MariaDB 연결 (0) | 2021.05.20 |
람다 표현식으로 함수 만들기 (0) | 2021.05.10 |
[파이썬기초] list comprehension (0) | 2021.05.04 |
[파이썬기초] 1회용 함수 (reversed(), enumerate(), items()) (0) | 2021.05.04 |