04-数据存储(02 csv文件的读取写入)

1、CSV文件简介

 2、读取CSV文件的两种方式

使用数据:test.csv,内容如下:

产品编号,产品名称,品牌,类别,采购价格,零售价格
1001,小米手机,小米,手机,1800,2000
1002,小米电脑,小米,电脑,4700,5200
1003,小米平板,小米,平板,1300,1500
2001,苹果手机,苹果,手机,6000,8000
2002,苹果电脑,苹果,电脑,8000,10000
2003,苹果平板,苹果,平板,2200,3000
3001,三星手机,三星,手机,3600,4200
3002,三星电脑,三星,电脑,3500,4000
3003,三星平板,三星,平板,1700,2000

 读取csv的两种方法:

# -*- coding: utf-8 -*-

# 读取csv的两种方法
# 1) 方式一、读取csv
import csv

with open('test.csv','r') as fp:
    reader = csv.reader(fp)
    titles = next(reader)  # 第一行标题
    for x in reader:
        print(x)

# 2) 方式二、通过标题来获取某一列数据,用DictReader
import csv

with open('test.csv','r') as fp:
    reader = csv.DictReader(fp)
    for x in reader:
        print(x['产品名称'])

 练习: 

# 3) 
import csv

with open('test.csv','r') as fp:
    # reader是一个迭代器
    reader = csv.reader(fp)
    next(reader)  # next函数:为了不读取第一行标题
    for x in reader:
        name = x[3]
        volumn = x[-1]
        print({'name':name, 'volumn':volumn})
        
# 4)
import csv

with open('test.csv','r') as fp:
    # 使用DictReader创建reader对象
    # 不会包含标题那行的数据
    # reader是一个迭代器,遍历这个迭代器,返回的是一个字典
    reader = csv.DictReader(fp)
    for x in reader:
        value = {'产品名称': x['产品名称'], '零售价格': x['零售价格']}
        print(value)

 

 3、写入CSV文件的两种方式

# -*- coding: utf-8 -*-

# 5 写入到csv的两种方法

# 1) 方式一:对元组
import csv

headers = ['username','age','height']
values = [
        ('张三',18,180),
        ('李四',19,190),
        ('王五',20,160)
        ]
with open('classroom.csv','w',encoding='utf-8',newline='') as fp:  
    writer = csv.writer(fp)
    writer.writerow(headers)
    writer.writerows(values)
    
'''
注意:
1、有中文时需要指定encoding
2、newline:默认'\n',即读入一行加一个换行符;为防止空行出现,需要指定为''(空)
'''

# 2) 方式二:对字典
headers = ['username','age','height']
values = [
        {'username':'张三', 'age':18, 'height':180},
        {'username':'李四', 'age':19, 'height':190},
        {'username':'王五', 'age':20, 'height':160}
        ]
with open('classroom.csv','w',encoding='utf-8',newline='') as fp:  
    writer = csv.DictWriter(fp, headers)
    # 写入表头的数据时,需要调用writeheader方法
    writer.writeheader()
    writer.writerows(values)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 Python有内置的csv模块,可以用于处理csv文件读取写入数据集成等操作。下面我会简单介绍一下这些操作。 1. 读取csv文件读取csv文件,可以使用csv模块中的reader()函数。这个函数可以将csv文件中的每一行转换成一个列表,然后返回一个包含所有行的列表。下面是一个简单的例子: ```python import csv with open('data.csv') as f: reader = csv.reader(f) header = next(reader) data = [row for row in reader] ``` 这个例子中,我们打开了一个名为"data.csv"的文件,并使用csv.reader()函数将文件中的每一行转换成一个列表。在这个例子中,我们还使用了next()函数来获取csv文件的第一行,也就是表头。最后,我们将所有数据存储在一个名为"data"的列表中。 2. 写入csv文件写入csv文件,可以使用csv模块中的writer()函数。这个函数可以将数据写入csv文件中。下面是一个简单的例子: ```python import csv data = [['name', 'age', 'gender'], ['Alice', 25, 'female'], ['Bob', 30, 'male'], ['Charlie', 35, 'male']] with open('output.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerows(data) ``` 这个例子中,我们创建了一个名为"data"的列表,其中包含了要写入csv文件中的所有数据。然后,我们打开一个名为"output.csv"的文件,并使用csv.writer()函数将数据写入文件中。在这个例子中,我们使用了writerows()函数来将整个二维列表写入文件中。 3. 数据集成 要将多个csv文件中的数据集成到一个文件中,可以使用csv模块中的writer()函数和reader()函数。下面是一个简单的例子: ```python import csv files = ['data1.csv', 'data2.csv', 'data3.csv'] output_file = 'output.csv' with open(output_file, 'w', newline='') as f: writer = csv.writer(f) for file in files: with open(file) as f2: reader = csv.reader(f2) header = next(reader) writer.writerow(header) for row in reader: writer.writerow(row) ``` 这个例子中,我们首先定义了要集成的多个csv文件文件名和输出文件文件名。然后,我们打开输出文件,并使用csv.writer()函数创建一个writer对象。接着,我们循环遍历每个csv文件,打开文件并使用csv.reader()函数创建一个reader对象。在每个文件的第一行,我们将表头写入输出文件中。然后,我们循环遍历每个文件中的行,并将其写入输出文件中。 希望这些例子能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值