【Python】Python读取CSV文件

1. CSV格式

csv 文件格式的本质是一种以文本存储的表格数据(使用 Excel 工具即可读写 csv 文件)。csv 文件的每行代表一行数据,每行数据中每个单元格内的数据以逗号隔开。

Python 提供了 csv 模块来读写 csv 文件。由于 csv 文件的格式本身比较简单(通常第一行是表头,用于说明每列数据的含义,接下来每行代表一行数据),因此使用 csv 模块读取 csv 文件也非常简单:

创建 csv 模块的读取器。

循环调用 csv 读取器的 next() 方法逐行读取 csv 文件内容即可。

next() 方法返回一个 list 列表代表一行数据,list 列表的每个元素代表一个单元格数据。

2.实例代码

读取前两行 

# readCSV.py
# python 3.8

import csv

file = 'D:\\1.csv'

with open(file, encoding="UTF8") as f:    
	reader = csv.reader(f)        # 创建 读取器
	header_row = next(reader)     # 获取表的第一行(一般是列名)
	print(header_row)             # 打印

	first_row = next(reader)      # 获取标的第二行
	print(first_row)

读取所有行:

# readCSV.py
# python 3.8

import csv

file = 'D:\\1.csv'

with open(file, encoding="UTF8") as f:
	reader = csv.reader(f)        # 创建 读取器
	header_row = next(reader)     # 获取表的第一行(一般是列名)
	print(header_row)             # 打印

    for row in reader:            # 循环得到后面的所有数据
        print(row)

其实,这个 reader 是个迭代器,其自身包含了一个指向当前数据位置的指针(非C语言指针,而是有点像生活中的手表表盘指针)。你对它调用一次 next(reader),其内部的指针就移到下一行。

数据如下图:

Excel打开CSV
用Excel打开CSV文件
用记事本打开CSV文件
用记事本打开CSV文件标题
代码输出结果
输出标题和第一行数据

3. 写数据的简单代码

import csv

header = ['ID','姓名']

data = [['123','张三'], ['124','李四']]

outputfile = "outfile.csv"

# 注意要加 newline='' 参数,否则会出现空行
csvFile = open(outputfile, "w", encoding="UTF8", newline='')   # 创建csv文件

writer = csv.writer(csvFile)             # 创建 写入器

writer.writerow(header)                  # 写入首行(一般都是标题)
                                               
writer.writerows(data)                    # 写入多行

csvFile.close()

4. 更精细的操作

1. 更复杂的读写控制(如筛选行和列),请使用Python第三方库:pandas。详细参考此文:用python读写和处理csv文件

2. 使用字典方式获取数据,可使用 csv.DictReader(file) ,具体参考:用Python读取CSV文件的5种方式

  • 9
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qilei2010

痛饮夏日的冰阔落

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值