CSV(쉼표로 구분된 값) 스프레드시트나 데이터베이스와 같은 표 형식의 데이터를 저장하는 데 사용되는 간단한 파일 형식입니다. CSV 파일은 표 형식 데이터(숫자 및 텍스트)를 일반 텍스트로 저장합니다. 파일의 각 줄은 데이터 레코드입니다. 각 레코드는 쉼표로 구분된 하나 이상의 필드로 구성됩니다. 필드 구분 기호로 쉼표를 사용하는 것이 이 파일 형식의 이름 소스입니다. Python에서 CSV 파일에 쓰는 방법에 대해 논의해 보겠습니다.
Python으로 CSV 파일 작성
아래는 우리가 쓸 수 있는 방법입니다 CSV 파일 ~에 파이썬 :
- Python csv.DictWriter()를 사용하여 CSV 파일에 쓰기
- csv.writer()를 사용하여 CSV 파일에 쓰기
- 파이프 구분 기호가 있는 CSV 파일 작성
- 따옴표가 포함된 CSV 파일 작성
- 사용자 정의 인용 문자를 사용하여 CSV 파일 작성
- CSV 작성기에서 escapechar 사용
DictWriter()를 사용하여 Python에서 CSV로 쓰기
이 클래스는 사전을 출력 행에 매핑하는 작성기 개체를 반환합니다.
통사론: csv.DictWriter(csvfile, fieldnames, Restval=, extrasaction='raise', 방언='excel', *args, **kwds)
매개변수:
- csv파일: write() 메소드가 있는 파일 객체입니다.
- 필드 이름: 사전의 값이 전달되어야 하는 순서를 식별하는 일련의 키입니다.
- Restval (선택 사항): 사전의 필드 이름에 키가 누락된 경우 기록될 값을 지정합니다.
- 추출(선택 사항): 필드 이름에서 키를 찾을 수 없는 경우 선택적 extrasaction 매개변수는 수행할 작업을 나타냅니다. 발생하도록 설정되면 ValueError가 발생합니다.
- 방언 (선택 사항): 사용할 방언의 이름입니다.
이 예에서는 학생 기록이 사전으로 저장되고, 이 사전을 사용하여 University_records.csv라는 CSV 파일이 생성됩니다. `csv.DictWriter` 클래스는 필드 이름을 헤더로 쓰고 사전 데이터 행을 CSV 파일에 쓰는 데 사용됩니다.
파이썬3
# importing the csv module> import> csv> # my data rows as dictionary objects> mydict>=> [{>'branch'>:>'COE'>,>'cgpa'>:>'9.0'>,>'name'>:>'Nikhil'>,>'year'>:>'2'>},> >{>'branch'>:>'COE'>,>'cgpa'>:>'9.1'>,>'name'>:>'Sanchit'>,>'year'>:>'2'>},> >{>'branch'>:>'IT'>,>'cgpa'>:>'9.3'>,>'name'>:>'Aditya'>,>'year'>:>'2'>},> >{>'branch'>:>'SE'>,>'cgpa'>:>'9.5'>,>'name'>:>'Sagar'>,>'year'>:>'1'>},> >{>'branch'>:>'MCE'>,>'cgpa'>:>'7.8'>,>'name'>:>'Prateek'>,>'year'>:>'3'>},> >{>'branch'>:>'EP'>,>'cgpa'>:>'9.1'>,>'name'>:>'Sahil'>,>'year'>:>'2'>}]> # field names> fields>=> [>'name'>,>'branch'>,>'year'>,>'cgpa'>]> # name of csv file> filename>=> 'university_records.csv'> # writing to csv file> with>open>(filename,>'w'>) as csvfile:> ># creating a csv dict writer object> >writer>=> csv.DictWriter(csvfile, fieldnames>=>fields)> ># writing headers (field names)> >writer.writeheader()> ># writing data rows> >writer.writerows(mydict)> |
>
>
산출:
name,branch,year,cgpa Nikhil,COE,2,9.0 Sanchit,COE,2,9.1 Aditya,IT,2,9.3 Sagar,SE,1,9.5 Prateek,MCE,3,7.8 Sahil,EP,2,9.1>
csv.writer()를 사용하여 CSV 파일에 쓰기
csv.writer>클래스는 CSV 파일에 데이터를 삽입하는 데 사용됩니다. 이 클래스는 사용자의 데이터를 구분된 문자열로 변환하는 작성기 개체를 반환합니다. csvfile 객체는 다음을 사용하여 열어야 합니다.newline=''>그렇지 않으면 인용된 필드 안의 개행 문자가 올바르게 해석되지 않습니다.
통사론: csv.writer(csvfile, 방언='excel', **fmtparams)
매개변수:
- csv파일: write() 메소드가 있는 파일 객체입니다.
- 방언 (선택 사항): 사용할 방언의 이름입니다.
- fmtparams(선택 사항): 방언에 지정된 매개변수를 덮어쓰는 형식 매개변수입니다.
이 예에서는 University_records.csv라는 CSV 파일이 생성되고 학생 기록으로 채워집니다. 파일에는 이름, 지점, 연도 및 CGPA와 같은 필드가 포함되어 있습니다. 개별 학생에 대한 데이터 행이 CSV 파일에 기록되고 그 뒤에 필드 이름이 기록됩니다.
파이썬3
import> csv> # field names> fields>=> [>'Name'>,>'Branch'>,>'Year'>,>'CGPA'>]> # data rows of csv file> rows>=> [[>'Nikhil'>,>'COE'>,>'2'>,>'9.0'>],> >[>'Sanchit'>,>'COE'>,>'2'>,>'9.1'>],> >[>'Aditya'>,>'IT'>,>'2'>,>'9.3'>],> >[>'Sagar'>,>'SE'>,>'1'>,>'9.5'>],> >[>'Prateek'>,>'MCE'>,>'3'>,>'7.8'>],> >[>'Sahil'>,>'EP'>,>'2'>,>'9.1'>]]> # name of csv file> filename>=> 'university_records.csv'> # writing to csv file> with>open>(filename,>'w'>) as csvfile:> ># creating a csv writer object> >csvwriter>=> csv.writer(csvfile)> ># writing the fields> >csvwriter.writerow(fields)> ># writing the data rows> >csvwriter.writerows(rows)> |
>
>
산출:
Name,Branch,Year,CGPA Nikhil,COE,2,9.0 Sanchit,COE,2,9.1 Aditya,IT,2,9.3 Sagar,SE,1,9.5 Prateek,MCE,3,7.8 Sahil,EP,2,9.1>
파이프 구분 기호가 있는 Python에서 CSV 파일 만들기
이 예에서는 data_pipe_delimited.csv라는 CSV 파일이 파이프로 구분된 데이터 행으로 생성됩니다(|>) 구분 기호. 파일에는 개인의 이름, 나이, 도시에 대한 정보가 포함되어 있습니다.
파이썬3
import> csv> # Define the data to be written to the CSV file> data>=> [> >[>'Name'>,>'Age'>,>'City'>],> >[>'Alice'>,>25>,>'New York'>],> >[>'Bob'>,>30>,>'Los Angeles'>],> >[>'Charlie'>,>35>,>'Chicago'>]> ]> # Specify the file name> filename>=> 'data_pipe_delimited.csv'> # Write data to the CSV file with a pipe delimiter> with>open>(filename,>'w'>, newline>=>'') as csvfile:> >csvwriter>=> csv.writer(csvfile, delimiter>=>'|'>)> >csvwriter.writerows(data)> print>(f>'Data has been written to {filename}'>)> |
>
>
산출:
Name|Age|City Alice|25|New York Bob|30|Los Angeles Charlie|35|Chicago>
따옴표가 포함된 CSV 파일 작성
이 예에서는 각 필드를 큰따옴표로 묶은 Students_data.csv라는 CSV 파일이 생성됩니다. 파일에는 학생 이름, 학과, 연도, CGPA 점수에 대한 정보가 포함되어 있습니다.
파이썬3
import> csv> # Define the rows data> rows>=> [> >[>'Nikhil'>,>'COE'>,>'2'>,>'9.0'>],> >[>'Sanchit'>,>'COE'>,>'2'>,>'9.1'>],> >[>'Aditya'>,>'IT'>,>'2'>,>'9.3'>],> >[>'Sagar'>,>'SE'>,>'1'>,>'9.5'>],> >[>'Prateek'>,>'MCE'>,>'3'>,>'7.8'>],> >[>'Sahil'>,>'EP'>,>'2'>,>'9.1'>]> ]> # Specify the file name> filename>=> 'students_data.csv'> # Write the rows data to the CSV file with quotes around each field> with>open>(filename,>'w'>, newline>=>'') as csvfile:> >csvwriter>=> csv.writer(csvfile, quoting>=>csv.QUOTE_ALL)> >csvwriter.writerows(rows)> print>(f>'Data has been written to {filename}'>)> |
자바 추가 문자열
>
>
산출:
'Nikhil','COE','2','9.0' 'Sanchit','COE','2','9.1' 'Aditya','IT','2','9.3' 'Sagar','SE','1','9.5' 'Prateek','MCE','3','7.8' 'Sahil','EP','2','9.1'>
사용자 정의 인용 문자를 사용하여 CSV 파일 작성
이 예에서는 Students_data.csv라는 CSV 파일이 파이프로 구분된 필드와 함께 생성됩니다(|>) 구분 기호로 묶이고 물결표(~>). 데이터에는 학생 이름, 학과, 연도 및 CGPA 점수가 포함됩니다.
파이썬3
import> csv> rows>=> [> >[>'Nikhil'>,>'COE'>,>'2'>,>'9.0'>],> >[>'Sanchit'>,>'COE'>,>'2'>,>'9.1'>],> >[>'Aditya'>,>'IT'>,>'2'>,>'9.3'>],> >[>'Sagar'>,>'SE'>,>'1'>,>'9.5'>],> >[>'Prateek'>,>'MCE'>,>'3'>,>'7.8'>],> >[>'Sahil'>,>'EP'>,>'2'>,>'9.1'>]> ]> filename>=> 'students_data.csv'> with>open>(filename,>'w'>, newline>=>'') as>file>:> >writer>=> csv.writer(>file>, quoting>=>csv.QUOTE_NONNUMERIC,> >delimiter>=>'|'>, quotechar>=>'~'>)> >writer.writerows(rows)> print>(f>'Data has been written to {filename}'>)> |
>
>
산출:
~Nikhil~|~COE~|~2~|9.0 ~Sanchit~|~COE~|~2~|9.1 ~Aditya~|~IT~|~2~|9.3 ~Sagar~|~SE~|~1~|9.5 ~Prateek~|~MCE~|~3~|7.8 ~Sahil~|~EP~|~2~|9.1>
CSV에서 escapechar 사용
이 예에서는 Students.csv라는 CSV 파일이 파이프로 구분된 필드와 함께 생성됩니다(|>) 구분 기호. 그만큼quotechar>큰따옴표로 설정됩니다('>) 그리고escapechar>백슬래시(>), 데이터 내에서 따옴표를 적절하게 처리할 수 있습니다.
파이썬3
import> csv> rows>=> [> >[>'Nikhil'>,>'COE'>,>'2'>,>'9.0'>],> >[>'Sanchit'>,>'COE'>,>'2'>,>'9.1'>],> >[>'Aditya'>,>'IT'>,>'2'>,>'9.3'>],> >[>'Sagar'>,>'SE'>,>'1'>,>'9.5'>],> >[>'Prateek'>,>'MCE'>,>'3'>,>'7.8'>],> >[>'Sahil'>,>'EP'>,>'2'>,>'9.1'>]> ]> filename>=> 'students.csv'> with>open>(filename,>'w'>, newline>=>'') as>file>:> >writer>=> csv.writer(>file>, quoting>=>csv.QUOTE_NONE,> >delimiter>=>'|'>, quotechar>=>'''>, escapechar>=>''>)> >writer.writerows(rows)> print>(f>'Data has been written to {filename}'>)> |
>
>
산출:
Nikhil|COE|2|9.0 Sanchit|COE|2|9.1 Aditya|IT|2|9.3 Sagar|SE|1|9.5 Prateek|MCE|3|7.8 Sahil|EP|2|9.1>