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)

 

블로그 이미지

Link2Me

,