Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 CSV 파일을 읽는 방법은 무엇입니까?

<시간/>

CSV 파일은 쉼표로 구분된 값 파일을 나타냅니다. 데이터 값이 쉼표로 구분된 일반 텍스트 파일이므로 쉼표를 사용하여 일반 텍스트 형식의 테이블 형식 데이터를 나타냅니다. CSV 파일의 확장자는 .csv입니다.

CSV 파일의 모양은 다음과 같습니다. −

Sr.No,Name,City,Age1,Rahul,Kolkata,212,Karan,Amritsar,233,Priya,Bangalore,20

CSV 파일을 생성하려면 메모장에 위 형식으로 파일을 작성하고 .csv 확장자로 저장하면 됩니다.

Python에서 CSV 파일 읽기

시스템의 로컬 저장소에 저장된 csv 파일은 Python을 사용하여 읽을 수 있습니다.

Python에서 csv 모듈을 가져와야 합니다. 그런 다음 파일에서 데이터를 읽어야 하므로 읽기 모드에서 파일을 열어야 합니다. csv.reader() 함수는 CSV 파일에서 데이터를 읽는 데 사용됩니다. csv.reader()는 반복 가능한 리더 객체를 반환합니다. csv 파일의 내용을 처리하기 위해 반환된 반복 가능한 판독기 개체를 반복해야 합니다.

구현

로컬 시스템에 "ttp.csv"라는 이름으로 csv 파일을 저장해 보겠습니다. 파일의 내용은 위의 예에 표시됩니다. 이 파일의 내용을 읽고 파일의 내용을 한 줄씩 인쇄해야 합니다.

예시

열린('ttp.csv','r') 파일로 csv 가져오기:filecontent=csv.reader(file) for row in filecontent:print(row)

참고: csv 파일과 Python 프로그램이 시스템의 동일한 위치, 즉 동일한 폴더에 있는지 확인하십시오.

출력

['Sr.No', 'Name', 'City', 'Age']['1', 'Rahul', 'Kolkata', '21']['2', 'Karan', 'Amritsar ', '23']['3', '프리야', '방갈로르', '20']

줄별 설명

  • csv 가져오기 − 이 모듈에 포함된 기능을 사용하여 파일을 읽기 위해서는 Python에서 csv 모듈을 가져와야 합니다.

  • open()을 사용하여 파일을 엽니다. open()은 파일 이름과 파일을 여는 모드의 두 가지 매개변수를 사용합니다. 여기서 모드는 파일을 읽어야 하므로 'r'입니다.

  • csv.reader()를 사용하여 파일의 내용을 읽습니다. 이것은 변수에 반환되는 반복 가능한 판독기 개체를 반환합니다.

  • 파일 내용을 반복하여 파일 내용을 행 단위로 인쇄합니다.

csv 파일과 이를 읽는 Python 프로그램은 같은 위치에 있어야 합니다.

csv 파일과 Python 프로그램이 로컬 시스템의 동일한 위치 또는 동일한 폴더에 있어야 합니다. 파일이 다른 위치에 있으면 예외를 발생시키고 다음과 같은 출력을 제공합니다.

추적(가장 최근 호출 마지막):open('ttp.csv','r')as file:FileNotFoundError:[Errno 2] 해당 파일 또는 디렉터리가 없습니다:'ttp.csv'

맞춤 구분 기호가 있는 CSV 파일 읽기

쉼표는 csv 파일에서 사용되는 유일한 구분 기호가 아닙니다. 사용된 다른 구분 기호는 다음과 같습니다. ,; ,| 등. 쉼표 대신 다른 구분 기호를 사용하는 경우 그에 따라 코드를 수정해야 합니다.

구현

위의 csv 파일에서 구분자는 쉼표 대신 ':'로 사용했습니다. 따라서 코드는 아래와 같이 수정됩니다 -

예시

열린 상태로 csv 가져오기('ttp.csv','r') as file:filecontent=csv.reader(file,delimiter=':') for row in filecontent:print(row)

출력

['아저씨', '아니요', '이름', '도시', '나이']['1', '라훌', '콜카타', '21']['2', '카란', '암리차르', '23']['3', '프리야', '방갈로르', '20']

코드의 유일한 수정 사항은 csv.reader() 의 csv 파일에 사용되는 구분 기호를 지정하는 것입니다. 사용된 구분 기호가 '|'인 경우 코드에서 구분 기호로 지정해야 합니다.

지정하지 않으면 기본적으로 코드는 쉼표만 구분자로 간주하고 파일에 쉼표가 없기 때문에 전체 행이 단일 항목으로 간주됩니다.

위의 코드에서 ':' 구분자를 사용하여 구분자를 지정하지 않으면 다음과 같이 잘못된 출력을 생성합니다.

['Sr:No:Name:City:Age']['1:Rahul:Kolkata:21']['2:Karan:Amritsar:23']['3:Priya:Bangalore:20'] 

위의 출력과 같이 전체 행을 하나의 항목으로 간주합니다.