Python-csv操作

Python CSV 模块允许你将数据存储为 CSV(逗号分隔值)文件。虽然许多应用程序使用数据库,但有时使用 CSV 文件可能会更好,例如当你为另一个需要这种格式的应用程序生成数据时。

在本文中,你将学习如何使用 Python 以两种不同的方式读取和写入 CSV 文件中的数据:使用 Python CSV 模块和使用第三方 Pandas 库。

什么是 .csv 文件?

CSV 文件是用于存储表格数据的纯文本文件。因为它是纯文本,你可以在文本编辑器中打开 CSV 文件进行编辑。你还可以在 Microsoft Excel 和其他电子表格应用程序中打开 CSV 文件,以查看以表格格式显示的数据。以下是示例 CSV 文件的内容:

姓名,省份,城市,出生日期
张三,安徽省,合肥市,1990年1月25日
赵四,广东省,广州市,1991年3月15日
王五,湖北省,武汉市,1992年4月8日

以下是你在 Excel 中打开此文件时的外观:

请注意,换行符分隔每个数据集,第一行包含每列的标题。然后用逗号分隔每一行的数据。在标准 CSV 格式中,分隔每个值的字符(也称为分隔符)是逗号。

但并非所有 CSV 文件都使用逗号作为分隔符。有时会使用制表符、分号或冒号,尤其是在数据中有逗号的情况下。数据值也可以用单引号或双引号括起来,这允许你在数据值本身中使用逗号。

"one,one", "two,two", "three,three"

所有类型的应用程序都可以使用 CSV 文件(包括电子表格和数据库)来获取数据并将数据从一个应用程序传输到另一个应用程序。由于它们是纯文本文件,任何具有文本处理能力的编程语言都可以处理它们。

使用 Python CSV 处理 CSV 文件

Python 编程语言附带一个 CSV 模块,该模块允许在不安装第三方库的情况下读取和写入 CSV 文件。默认情况下,它旨在处理 Microsoft Excel 生成的 CSV 文件格式,但它可以配置为读取和写入任何类型的 CSV 文件。
使用 CSV 模块写入 CSV 文件

要解析 CSV 数据,你可以使用 CSV 模块的阅读器对象。

 

import csv
headers = ['class', 'name', 'sex', 'height', 'year']

rows = [
[1, 'xiaoming', 'male', 168, 23],
[1, 'xiaohong', 'female', 162, 22],
[2, 'xiaozhang', 'female', 163, 21],
[2, 'xiaoli', 'male', 158, 21]
]

# 写入csv 文件
with open('test.csv', mode='w',newline='')as f:
f_csv = csv.writer(f)
f_csv.writerow(headers)
f_csv.writerows(rows)
# 读取csv 文件
with open('test.csv')as f:
f_csv = csv.reader(f)
for row in f_csv:
print(row[0])

#把csv的行内容读取为字典格式,方便进行数据输出
import csv
with open('test.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
# print(row)
print(list(row['class']), list(row['name']), list(row['sex']))


# 输出结果:
# ['class', 'name', 'sex', 'height', 'year']
# ['1', 'xiaoming', 'male', '168', '23']
# ['1', 'xiaohong', 'female', '162', '22']
# ['2', 'xiaozhang', 'female', '163', '21']
# ['2', 'xiaoli', 'male', '158', '21']


import csv

headers = ['class', 'name', 'sex', 'height', 'year']
#使用字典的数据格式来写入数据
rows = [
{'class': 1, 'name': 'xiaoming', 'sex': 'male', 'height': 168, 'year': 23},
{'class': 1, 'name': 'xiaohong', 'sex': 'female', 'height': 162, 'year': 22},
{'class': 2, 'name': 'xiaozhang', 'sex': 'female', 'height': 163, 'year': 21},
{'class': 2, 'name': 'xiaoli', 'sex': 'male', 'height': 158, 'year': 21},
]

# 写入csv 文件
with open('test2.csv', 'w', newline='')as f:
f_csv = csv.DictWriter(f, headers)
f_csv.writeheader()
f_csv.writerows(rows)

# 读取csv 文件
with open('test2.csv')as f:
f_csv = csv.reader(f)
for row in f_csv:
print(row)

# 输出结果:
# ['class', 'name', 'sex', 'height', 'year']
# ['1', 'xiaoming', 'male', '168', '23']
# ['1', 'xiaohong', 'female', '162', '22']
# ['2', 'xiaozhang', 'female', '163', '21']
# ['2', 'xiaoli', 'male', '158', '21']



我爱编程  |  2022-12-18

  生活/ 青春   |   | 

分享图片如下

联系方式

友情链接




交流合作微信号yueqiu-shuo link to 京ICP备2023023066号-1