zoukankan      html  css  js  c++  java
  • 【Python3 爬虫】U22_csv文件处理

    1.什么是csv?

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

    2.csv文件的两种读取方式

    2.1 reader读取

    import csv
    with open("student.csv","r") as f:
        # reader是一个迭代器
        reader = csv.reader(f)
        titles = next(reader) # 跳过标题行
        for x in reader:
            name = x[0]
            age = x[1]
            print("姓名:%s" %name, "年龄:%s" %age)
    

    输出结果:
    姓名:张三 年龄:15
    姓名:李四 年龄:16
    姓名:王五 年龄:17

    使用reader读取的话,存在一个问题,在获取数据的时候,通过下标来获取列,现在第一列式name,如果我把第一列修改为id列,那么数据获取将会出现问题,所以有了DictReader

    2.2 DictReader读取

    如果想要获取数据的时候通过标题来获取,那么可以使用DictReader

    import csv
    with open("student.csv","r") as f:
        # 使用DictReader创建的reader对象,不会包含标题那行数据,reader是一个迭代器,遍历这个迭代器,返回的是一个字典
        reader = csv.DictReader(f)
        for x in reader:
            value = {"姓名":x["name"],"年龄":x["age"]}
            print(value)
    
    

    输出结果:
    {'姓名': '张三', '年龄': '15'}
    {'姓名': '李四', '年龄': '16'}
    {'姓名': '王五', '年龄': '17'}

    3.csv文件的两种写入方式

    3.1 writer写入

    import csv
    title = ["empno","ename","owner"]
    value = [
        ('A001','关羽','刘备'),
        ('A002','张飞','刘备'),
        ('A003','夏侯惇','曹操'),
        ('A004','郭嘉','曹操'),
    ]
    with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默认的newline为
    
        writer = csv.writer(f)
        writer.writerow(title)
        writer.writerows(value)
    

    运行后结果:

    3.2 DictWriter写入

    import csv
    title = ['empno','ename','owner']
    value = [
        {'empno':'A001','ename':'关羽','owner':'刘备'},
        {'empno':'A002','ename':'张飞','owner':'刘备'},
        {'empno':'A003','ename':'夏侯惇','owner':'曹操'},
        {'empno':'A004','ename':'郭嘉','owner':'曹操'},
    ]
    with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默认的newline为
    
        writer = csv.DictWriter(f,title)
        # 写入表头直接调用writeheader()方法即可
        writer.writeheader()
        writer.writerows(value)
    

    运行后结果:

  • 相关阅读:
    pip常用命令
    Conda环境管理
    关于自动化去掉验证码(收录)
    下载安装Eclipse---来自廖雪峰老师
    linux之top命令
    python——os模块
    Crypto
    Java_局部内部类
    Java_内部类
    Java_权限修饰符
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12631259.html
Copyright © 2011-2022 走看看