CSV(Comma-Separated Values)는 쉼표로 구분된 값으로 Excel에서 열고 볼 수 있습니다. 일반 텍스트이므로 모든 편집기에서 열 수 있습니다. Excel 파일과 달리 CSV 파일에서는
값에 유형이 없으며 모든 값은 문자열입니다.
글꼴 색상 및 기타 스타일을 지정할 수 없습니다.
셀의 너비와 높이를 지정할 수 없습니다. 셀을 병합할 수 없습니다
여러 워크시트가 없습니다
이미지 차트를 삽입할 수 없습니다
CSV 파일에서는 ,
를 구분 기호로 사용하여 두 셀을 구분합니다. 이와 같이 a,,c
는 a
셀과 c
셀 사이에 빈 셀이 있다는 의미입니다. 등. ,
作为分隔符,分隔两个单元格。像这样a,,c
表示单元格a
和单元格c
之间有个空白的单元格。依此类推。
不是每个逗号都表示单元格之间的分界。所以即使CSV是纯文本文件,也坚持使用专门的模块进行处理。Python内置了csv模块。先看看一个简单的例子。
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)print(list(reader))
data
不能直接打印,list(data)最外层是list,里层的每一行数据都在一个list中,有点像这样
[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]
于是我们可以这样访问到Bob的年龄reader[1][1]
, 在for循环中遍历如下
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)for row in reader:# 行号从1开始print(reader.line_num, row)
要注意的是,reader只能被遍历一次。由于reader是可迭代对象,可以使用next
方法一次获取一行。
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)# 读取一行,下面的reader中已经没有该行了head_row = next(reader)for row in reader:# 行号从2开始print(reader.line_num, row)
有reader可以读取,当然也有writer可以写入。一次写入一行,一次写入多行都可以。
import csv# 使用数字和字符串的数字都可以datas = [['name', 'age'], ['Bob', 14], ['Tom', 23], ['Jerry', '18']]with open('example.csv', 'w', newline='') as f: writer = csv.writer(f)for row in datas: writer.writerow(row) # 还可以写入多行writer.writerows(datas)
如果不指定newline=''
name,age Bob,14 Tom,23 Jerry,18 name,age Bob,14 Tom,23 Jerry,18
data
는 목록(데이터)의 가장 바깥쪽 레이어가 목록이고 내부 레이어의 각 데이터 행은 목록에 있습니다. like this
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.DictReader(f)for row in reader:# Max TemperatureF是表第一行的某个数据,作为keymax_temp = row['Max TemperatureF']print(max_temp)그래서 우리는
reader[1][1]
와 같이 Bob의 나이에 접근할 수 있으며, for 루프에서 다음과 같이 순회합니다import csv headers = ['name', 'age'] datas = [{'name':'Bob', 'age':23}, {'name':'Jerry', 'age':44}, {'name':'Tom', 'age':15} ]with open('example.csv', 'w', newline='') as f:# 标头在这里传入,作为第一行数据writer = csv.DictWriter(f, headers) writer.writeheader()for row in datas: writer.writerow(row) # 还可以写入多行writer.writerows(datas)
next
메서드를 사용하여 한 번에 한 행을 가져올 수 있습니다. rrreee🎜csv 파일에 데이터 쓰기🎜🎜읽을 수 있는 독자도 있고, 쓸 수 있는 작가도 있습니다. 한 번에 한 줄씩 쓸 수도 있고, 한 번에 여러 줄을 쓸 수도 있습니다. 🎜rrreee🎜newline=''
를 지정하지 않으면 작성된 각 줄마다 빈 줄이 작성됩니다. 위의 코드는 다음을 생성합니다. 🎜rrreee🎜DictReader 및 DictWriter 개체🎜🎜DictReader를 사용하면 테이블의 첫 번째 행(일반적으로 헤더)을 키로 사용하여 사전처럼 데이터를 작동할 수 있습니다. 행의 해당 키에 해당하는 데이터에 액세스하려면 키를 사용하세요. 🎜rrreee🎜DictWriter 클래스를 사용하면 사전 형태로 데이터를 쓸 수 있고, 키도 헤더(테이블의 첫 번째 행)입니다. 🎜rrreee🎜🎜🎜위 내용은 Python 처리 csv 파일 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!