Python에서 헤더가 있는 CSV 읽기

Vaibhav Vaibhav 2022년1월23일
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
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python CSV