Python에서 헤더가 있는 CSV 읽기
Python은 명확하고 이해하기 쉬운 범용 프로그래밍 언어입니다.
Python은 기계 학습, 데이터 과학, 게임 개발, 웹 개발, 앱 개발 등과 같은 여러 도메인에 대한 간단한 구문과 많은 유틸리티를 가지고 있기 때문에 전 세계적으로 상위 5개 프로그래밍 언어 중 하나입니다. 장면.
Python은 파일 처리를 원활한 작업으로 만듭니다. txt
, csv
, xlsx
, pdf
등과 같은 많은 파일 형식을 처리할 수 있기 때문에 Python을 사용하여 파일을 쉽게 생성하고, 파일을 읽고, 데이터를 추가하거나 기존 파일에 데이터를 덮어쓸 수 있습니다.
또한 파일 처리를 효율적이고 간단하게 만드는 많은 오픈 소스 패키지가 있습니다.
이 기사에서는 Python을 사용하여 CSV 파일과 헤더를 읽는 방법을 배웁니다. 동일한 정보를 제공하기 위해 코드 조각에서 설명을 위해 샘플 파일을 사용합니다. 이 CSV 파일은 여기에서 다운로드할 수 있습니다. 앞의 예에서는 CSV 파일의 첫 번째 행을 헤더로 간주합니다.
Python에서 헤더가 있는 CSV 읽기
Python에는 CSV 파일을 읽는 데 사용할 수 있는 csv
패키지가 있습니다. 이 패키지는 기본적으로 공식 Python 설치에 있습니다.
csv
패키지에는 CSV 파일을 읽는 데 사용할 수 있는 reader()
메서드가 있습니다. 읽고 있는 CSV 파일의 내용을 인쇄하기 위해 탐색할 수 있는 반복 가능한 개체를 반환합니다.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
for row in csv_reader:
print(row)
출력:
['Login email', 'Identifier', 'First name', 'Last name']
['laura@example.com', '2070', 'Laura', 'Grey']
['craig@example.com', '4081', 'Craig', 'Johnson']
['mary@example.com', '9346', 'Mary', 'Jenkins']
['jamie@example.com', '5079', 'Jamie', 'Smith']
위 솔루션의 시간 복잡도는 O(n)
입니다.
우리가 볼 수 있듯이 출력은 첫 번째 행이 헤더이고 다른 행에 값이 있음을 보여줍니다. 헤더를 별도의 변수에 저장하고 모든 것을 적절한 형식으로 인쇄하여 출력을 더욱 아름답게 할 수 있습니다.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file)
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
출력:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith
위 솔루션의 시간 복잡도는 O(n)
입니다.
위의 코드에서 csv_reader
는 반복 가능합니다. next()
메소드를 사용하여 먼저 csv_reader
에서 헤더를 가져온 다음 for
루프를 사용하여 값을 반복했습니다.
이름에서 알 수 있듯이 CSV 파일에는 쉼표로 구분된 값이 있습니다.
때로는 CSV 파일 내의 값이 쉼표로 구분되지 않습니다. 세미콜론(;
), 콜론(:
) 등을 구분 기호로 사용할 수 있습니다. 이러한 경우 csv
패키지에서 reader()
메서드의 delimiter
인수를 사용할 수 있습니다.
delimiter
인수는 구분 기호로 간주되어야 하는 문자열 또는 문자를 허용합니다. 예를 들어 CSV 파일에 ;
가 있는 경우 구분자로 이러한 CSV 파일을 읽는 코드는 다음과 같습니다.
from csv import reader
file_name = "email.csv"
with open(file_name, "r") as csv_file:
csv_reader = reader(csv_file, delimiter=";") # Important
header = next(csv_reader)
print("Header:")
print(", ".join(header))
print("Values:")
for row in csv_reader:
print(", ".join(row))
출력:
Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith