반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 머신러닝
- 소프트웨어공학
- 컴퓨터과학
- 딥러닝
- 컴퓨터공학
- 자바스크립트
- 프로그래밍언어
- 2
- 네트워크
- 데이터구조
- 인공지능
- 데이터분석
- 네트워크보안
- 버전관리
- 보안
- 데이터과학
- 클라우드컴퓨팅
- 자료구조
- 알고리즘
- I'm Sorry
- 사이버보안
- 소프트웨어
- 컴퓨터비전
- 빅데이터
- 코딩
- 웹개발
- 프로그래밍
- 파이썬
- Yes
- 데이터베이스
Archives
- Today
- Total
스택큐힙리스트
Bytes 객체를 csv에서 읽는 방법은 다음과 같습니다. 본문
반응형
나는 Python의 csv.writer()
를 사용하여 트윗의 텍스트를 csv 파일에 저장하기 위해 tweepy를 사용했지만, 저장하기 전에 텍스트를 utf-8로 인코딩해야했습니다. 그렇지 않으면 tweepy에서 이상한 오류가 발생합니다.
지금은 텍스트 데이터가 다음과 같이 저장되어 있습니다:
b'Lorem Ipsum\xc2\xa0Assignment '
다음 코드를 사용하여 이를 디코딩하려고 시도했지만 (다른 열에 더 많은 데이터가 있으므로 텍스트는 3번째 열에 있음):
with open('data.csv','rt',encoding='utf-8') as f:
reader = csv.reader(f,delimiter=',')
for row in reader:
print(row[3])
하지만 텍스트가 디코딩되지 않습니다. .decode('utf-8')
을 사용할 수 없습니다. 왜냐하면 csv 리더가 데이터를 문자열로 읽기 때문에 type(row[3])
은 'str'
이고, 이를 더 이상 bytes
로 변환할 수 없기 때문입니다. 데이터가 한 번 더 인코딩됩니다!
텍스트 데이터를 어떻게 디코딩할 수 있을까요?
편집: csv 파일의 샘플 라인은 다음과 같습니다:
67783591545656656999,3415844,1450443669.0,b'아랍어 과제 때문에 학군 지역 폐쇄: 버지니아주 올구스타 카운티 학군이 ... | @abcde',52,18
Note: 만약 해결책이 인코딩 과정에 있다면, 전체 데이터를 다시 다운로드할 여력이 없음을 주의하세요.
답변 1
가장 쉬운 방법은 아래와 같습니다. 해보세요.
import csv
from io import StringIO
byte_content = b바이트 컨텐츠입니다
content = byte_content.decode()
file = StringIO(content)
csv_data = csv.reader(file, delimiter=,)
답변 2
바이트 객체를 CSV에서 읽는 방법에 대해 알아보겠습니다. CSV 파일은 데이터를 텍스트 형식으로 저장하며, 이러한 파일을 읽거나 쓰기 위해서는 텍스트 데이터를 이진 형식으로 변환해야 합니다. 바이트 객체는 이진 데이터를 다루는 데 사용되며, 파이썬에서는 'bytes' 타입으로 처리됩니다.CSV 파일을 읽기 위해서는 먼저 파일을 열어야 합니다. 파일을 열 때는 'rb' 모드를 사용하여 이진 형식으로 읽는다는 것을 알려줘야 합니다. 그리고 파일 객체를 생성하여 데이터를 읽을 수 있습니다. 파일 객체를 생성하려면 'open' 함수를 사용하고, 파일 경로와 함께 'rb' 모드를 전달합니다.
파일 객체를 생성한 후에는 'csv' 모듈을 사용하여 데이터를 읽을 수 있습니다. 'csv' 모듈은 CSV 파일의 데이터를 파싱하고, 행과 열로 구분된 데이터를 쉽게 다룰 수 있는 기능을 제공합니다. 'csv' 모듈을 사용하기 위해서는 먼저 모듈을 import 해야 합니다.
이제 'csv' 모듈을 사용하여 파일 객체를 읽을 수 있습니다. 'reader' 함수를 사용하여 데이터를 행 단위로 읽을 수 있으며, 각 행은 리스트 형태로 반환됩니다. 각 행의 데이터는 바이트 형식으로 읽히므로, 필요에 따라 문자열로 변환해야 할 수도 있습니다.
파일을 모두 읽은 후에는 파일을 닫아주어야 합니다. 파일을 닫지 않으면 파일의 자원이 계속해서 점유되어 메모리 낭비가 발생할 수 있습니다. 파일을 닫으려면 파일 객체의 'close' 메소드를 호출하면 됩니다.
바이트 객체를 CSV에서 읽는 방법에 대해 알아보았습니다. CSV 파일을 바이트 형식으로 읽기 위해서는 파일을 이진 모드로 열고, 'csv' 모듈을 사용하여 데이터를 행 단위로 읽으면 됩니다. 파일을 닫지 않는 실수를 방지하기 위해 파일 객체의 'close' 메소드를 호출하는 것도 잊지 마세요.
반응형
Comments