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

Python CSV 모듈:단계별 가이드

Python CSV 모듈은 CSV 파일을 처리하는 데 사용됩니다. CSV 파일에는 많은 정보가 포함될 수 있으며 CSV 모듈은 Python이 reader() writer() 기능.


데이터 읽기, 쓰기 및 조작은 프로그래밍의 필수적인 부분입니다. 따라서 Python에서 파일을 처리하는 방법을 알고 있으면 외부 소스에서 데이터를 읽고 쓸 수 있습니다.

예를 들어, 고객 동향에 대해 더 알고 싶어 하는 지역 아이스크림 가게의 소유자라고 가정해 보겠습니다. Python을 사용하여 사용자 주문에 대해 수집한 데이터를 분석하여 인기 있는 아이스크림 맛, 사람들이 그 맛에 얼마나 지출하는지 등에 대해 알아낼 수 있습니다.

이것은 Python CSV 모듈이 들어오는 곳입니다. CSV 파일은 많은 양의 데이터를 저장하는 데 사용되며 CSV 모듈을 사용하면 Python에서 해당 파일을 구문 분석할 수 있습니다. 이 튜토리얼에서는 CSV Python 모듈을 사용하여 CSV 파일을 읽고 쓰는 방법을 살펴보겠습니다.

CSV 리프레셔

데이터로 작업할 때 쉼표로 구분된 해당 데이터 목록이 있을 수 있습니다. 예를 들어 값이 쉼표로 구분된 아이스크림 주문 목록이 있을 수 있습니다. 이 데이터 구조를 CSV 데이터 또는 쉼표로 구분된 값이라고 합니다.

기존 텍스트 파일은 데이터를 저장해야 할 때 유용할 수 있지만 구조화된 데이터를 저장하는 데는 사용할 수 없습니다. 반면 CSV 파일을 사용하면 스프레드시트 및 데이터베이스에서 구조화된 데이터를 저장하는 방식과 유사하게 코드에서 참조할 수 있는 테이블 형식으로 구조화된 데이터를 저장할 수 있습니다. 예를 들어 아이스크림 맛이나 공급업체 정보를 저장하는 CSV 파일이 있을 수 있습니다.

다음은 CSV 파일의 예입니다.

suppliers.csv

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles

이 파일은 공급업체 이름, 주소, 우리 사업에 공급하는 제품의 세 가지 항목을 저장합니다. 우리 파일은 또한 두 줄의 데이터를 저장합니다. 하나는 Hendersons Creamery에 대한 것이고 다른 하나는 Peterson Chocolate에 대한 것입니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

데이터는 CSV 파일로 구성되어 있으므로 Python 프로그램을 통해 구문 분석하고 개별 열 또는 행에서 데이터를 가져올 수 있습니다.

파이썬 CSV 모듈

Python CSV 모듈은 Python에서 CSV 데이터를 구문 분석하는 데 사용할 수 있습니다. 따라서 예를 들어 공급업체 정보의 CSV 파일이 있는 경우 CSV 모듈을 사용하여 해당 데이터를 검색하고 사용할 수 있습니다.

CSV는 내장된 Python 모듈이지만 사용하기 전에 CSV를 가져와야 합니다. 우리 프로그램에. 다음 코드를 사용하여 수행할 수 있습니다.

import csv

CSV 파일 읽기

CSV 파일의 데이터로 작업하려면 먼저 파일을 읽어야 합니다. CSV 모듈은 reader()라는 메소드와 함께 제공됩니다. CSV 파일을 프로그램으로 읽는 데 사용할 수 있습니다. 리더 함수는 지정된 파일의 각 줄을 가져와 열 목록으로 바꿉니다.

suppliers.csv라는 파일에 아이스크림 공급업체 목록이 있다고 가정해 보겠습니다. 우리 프로그램에서 읽고 싶은 것입니다. 파일 내용은 다음과 같습니다.

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones

다음 코드를 사용하여 이 데이터를 검색할 수 있습니다.

import csv
with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		print(c)
로 csv 가져오기

여기에서 많은 일이 발생하므로 분해해 보겠습니다. 첫 번째 줄에서 csv를 가져옵니다. 코드에서 CSV 메서드를 사용할 수 있게 해주는 모듈입니다. 다음 줄에서는 with를 사용합니다. 파일을 여는 명령문, 그리고 파일에 f 값을 할당해야 한다고 명시 .

다음으로 contents = csv.reader(f)를 사용합니다. csv.reader()를 사용하여 파일의 내용을 읽습니다. 함수. 마지막으로, 우리 프로그램은 CSV 파일의 각 줄을 반복하는 for 루프를 생성하고 이를 Python 셸에 출력합니다.

우리 프로그램은 다음을 반환합니다:

['Hendersons Creamery', ' 123 Main Street', ' Cream']
['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles']
['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']

보시다시피 우리 프로그램은 파일의 내용을 읽고 각 줄을 배열로 바꿉니다. 이제 이 데이터가 있으므로 프로그램에서 조작할 수 있습니다.

상점이 문을 닫기 때문에 다음 주에 주문을 취소하라는 통지를 보낸다고 가정해 보겠습니다. 통지를 보낼 수 있도록 이 코드를 사용하여 각 공급업체의 주소를 얻을 수 있습니다.

…

	for c in contents:
		print(c[1])

우리 프로그램은 다음을 반환합니다:

123 Main Street
129 Second Street
17 Boston Avenue

코드에서 for를 생성합니다. contents의 각 줄을 통과하는 루프 변하기 쉬운. 그런 다음 인덱스 번호가 1인 각 항목의 값을 출력합니다. , 이 경우 각 공급업체의 주소가 포함됩니다.

이제 파일에서 배열로 데이터를 읽고 싶다고 가정해 보겠습니다. 이것은 나중에 사용할 수 있도록 데이터를 다른 변수에 저장할 수 있기 때문에 일반적인 기능입니다. 이 작업을 수행하는 데 사용할 수 있는 코드는 다음과 같습니다.

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		suppliers.append(c)

print(suppliers)

코드는 다음을 반환합니다.

[['Hendersons Creamery', ' 123 Main Street', ' Cream'], ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'], ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']]

우리 코드에서 무슨 일이 일어나고 있는지 설명합시다. 우리 프로그램은 suppliers.csv 파일을 엽니다. , 파일을 읽은 다음 각 레코드를 suppliers 배열에 추가합니다. 프로그램 시작 시 선언한 것입니다. 그런 다음 우리 프로그램은 변수 suppliers를 출력합니다. .

CSV 파일에 쓰기

CSV 모듈에는 CSV 파일에 데이터를 쓰는 데 사용할 수 있는 메소드가 포함되어 있습니다. writer() . writer() 함수를 사용하면 나중에 사용할 수 있도록 데이터를 저장할 수 있도록 지정한 파일에 데이터를 쓸 수 있습니다.

writer() 함수는 파일에 쓰는 데 사용할 수 있는 개체를 만듭니다. 그런 다음 파일에 데이터를 쓰기 위해 writerow()를 사용합니다. 방법.

각 공급자 레코드에 새 값을 추가하는 프로그램을 작성했다고 가정해 보겠습니다. 이 값은 공급자가 특정 제품의 주요 공급자인지 여부를 나타냅니다. 다음은 가지고 있는 데이터를 파일에 쓰는 데 사용할 수 있는 코드입니다.

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		c.append("Yes")
		suppliers.append(c)

with open("new_suppliers.csv", "w") as f:
write_to_file = csv.writer(f)
for s in suppliers:
	write_to_file.writerow(s)

코드의 시작은 이전 예제와 매우 유사합니다. suppliers.csv 파일을 읽습니다. 콘텐츠를 suppliers로 이동합니다. 정렬. 유일한 차이점은 읽기 함수가 Yes라는 새 값을 추가한다는 것입니다. 공급자 배열의 각 항목에. 이 값은 공급자가 특정 제품의 1차 공급자인지 여부를 나타냅니다.

다음으로 new_suppliers.csv라는 새 파일을 엽니다. suppliers의 콘텐츠를 작성합니다. 해당 파일에. writer()를 사용합니다. 파일 쓰기를 준비하는 함수입니다.

그런 다음 for를 만듭니다. suppliers를 통과하는 루프 배열을 사용하고 writerow() 각 공급자를 new_suppliers.csv에 추가하는 방법 파일.

코드는 다음을 반환합니다.

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

그러나 전체 suppliers를 작성하려는 경우 각 항목을 반복할 필요는 없습니다. 파일에 대한 변수. 대신 writerows()를 사용할 수 있습니다. suppliers의 모든 항목을 작성하는 방법 new_suppliers.csv에 대한 변수 파일.

사용할 코드는 다음과 같습니다.

…
	write_to_file = csv.writer(f)
	write_to_file.writerows(suppliers)

…

코드 반환:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

CSV 파일 인용

위의 예에서 우리 코드는 suppliers를 작성했습니다. 새 파일에 배열을 표시합니다.

그러나 각 값을 따옴표로 묶은 파일에 기록하려는 경우가 있을 수 있습니다. 예를 들어, 일부 공급업체 이름에 쉼표가 포함된 공급업체 목록이 있을 수 있으며, 이로 인해 CSV 파일 형식이 잘못될 수 있습니다.

CSV 모듈에는 파일에 쓸 값을 인용 부호로 묶는 데 사용할 수 있는 4개의 인용 기능이 포함되어 있으므로 이러한 일이 발생하지 않습니다. 이 함수는 csv.writer()에 인수로 전달됩니다. 방법이며 다음과 같습니다.

  • csv.QUOTE_ALL :모든 문자열을 따옴표로 묶습니다.
  • csv.QUOTE_NONNUMERIC :모든 문자열 필드 인용
  • csv.QUOTE_MINIMAL :특수 문자가 있는 인용 필드
  • csv.QUOTE_NONE :어떤 값도 인용하지 마십시오.

따라서 suppliers의 모든 값을 인용하고 싶다고 가정해 보겠습니다. 파일에 기록될 때 배열입니다. 다음 코드를 사용할 수 있습니다.

…

write_to_file = csv.writer(f, quoting=csv.QUOTE_ALL)

…

이제 프로그램을 실행할 때 new_suppliers.csv 파일은 다음을 포함합니다:

"Hendersons Creamery"," 123 Main Street"," Cream","Yes"
"Peterson Chocolate"," 129 Second Street"," Chocolate Sprinkles","Yes"
"HW Smith and Co"," 17 Boston Avenue"," Ice Cream Cones","Yes"

결론

파일에서 데이터를 읽고 데이터를 쓰면 Python 프로그램에서 생성된 데이터를 검색하고 저장할 수 있습니다. 예를 들어, Python 프로그램 내에서 작업하려는 아이스크림 맛 및 가격 메뉴가 있는 경우 데이터를 파일에 저장할 수 있습니다.

이 자습서에서는 Python CSV 모듈의 기본 사항과 작동 방식을 살펴보았습니다. reader()를 사용하여 파일을 읽고 쓰는 방법도 논의했습니다. 및 writer() 개체.

이제 전문가처럼 Python을 사용하여 CSV 파일에서 데이터를 읽고 쓸 준비가 되었습니다!

전 세계의 기업들은 Python으로 코딩할 줄 아는 사람들을 고용하고 있습니다. 다운로드 무료 Career Karma 앱 오늘 Python 학습이 기술 분야의 경력을 쌓는 데 어떻게 도움이 되는지 자세히 알아보세요!