python操作csv数据

从csv文件中读取数据

movies.csv文件中的数据

movie_id,ratting,time,director
1001,6.6,101,a1
1002,6.8,102,a2
1003,6.8,103,a3
1004,7.8,104,a4
1005,8.8,105,a5
1006,6.8,106,a6
1007,6.8,107,a7
1008,6.8,108,a8
1009,6.8,109,a9
1010,7.8,110,a10
1011,7.1,111,a11
1012,9.8,112,a12
1013,10.8,113,a13
1014,6.8,114,a14
1015,6.8,115,a15
1016,6.8,116,a16
1017,7.7,117,a17
1018,9.3,118,a18
1019,6.3,119,a19
1020,6.4,120,a20
1021,5.6,121,a21
1022,8.6,122,a22
1023,8.6,123,a23
1024,7.6,124,a24
1025,5.5,125,a25
1026,8.4,126,a26
1027,6.7,127,a27
1028,8.4,128,a28
1029,4.7,129,a29
1030,6.8,130,a30
import csv

'''
    读取csv文件
'''

def read_csv_demo1():
    with open("movies.csv","r",encoding="utf-8") as fp:
        # reader是一个迭代器
        reader = csv.reader(fp)
        # next()函数是将迭代器的指针向下移动一位。此处如果不使用next()函数,读取时将包含第一行(标题行)
        # next(reader)
        for x in reader:
            # 获取第二列ratting数据
            ratting = x[1]
            # 获取最后一列director数据
            director = x[-1]
            print({"ratting":ratting,"director":director})

def read_csv_demo2():
    with open("movies.csv","r",encoding="utf-8") as fp:
        # 使用DictReader()创建的reader对象不会包含标题的那行数据
        # reader是一个迭代器,遍历这个迭代器,返回的是一个字典
        reader = csv.DictReader(fp)
        for x in reader:
            # 获取ratting列数据
            ratting = x["ratting"]
            # 获取director列数据
            director = x["director"]
            print({"ratting": ratting, "director": director})


if __name__ == '__main__':
    # read_csv_demo1()
    read_csv_demo2()
将csv数据写入文件
import csv
'''
    将csv数据写入文件
'''


# 使用元组的形式将数据写入到csv文件中
def wriite_csv_demo1():
    # 定义标题行
    headers = ["username", "age", "hight"]
    # 要写入的数据(元组的形式)
    values = [
        ("张三", 18, 180),
        ("李四", 19, 175),
        ("王五", 20, 170)
    ]
    # newline参数不指定的话,默认为\n,即会在新建的每一行后面对一个换行符。
    # 如果不想要每写入一行数据就添加一个空行的话,可将newline参数设置为空字符串
    with open("students.csv","w",encoding="utf-8",newline="") as fp:
        writer = csv.writer(fp)
        writer.writerow(headers)
        writer.writerows(values)

# 使用字典的形式将数据写入到csv文件中
def wriite_csv_demo2():
    headers = ["username", "age", "hight"]
    values = [
        {"username":"张三","age":10,"hight":170},
        {"username":"李四","age":20,"hight":180},
        {"username":"王五","age":30,"hight":190},
    ]
    with open("students02.csv","w",encoding="utf-8",newline="") as fp:
        writer = csv.DictWriter(fp,headers)
        # 写入表头数据时,需要调用writerheader()方法
        writer.writeheader()
        writer.writerows(values)

if __name__ == '__main__':
    wriite_csv_demo2()

GitHub代码:https://github.com/wyp001/csv_demo.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码到成功>_<

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值