首页 > 编程语言 >python中csv库的使用

python中csv库的使用

时间:2022-12-09 05:22:34浏览次数:34  
标签:name python gender age writer header 使用 csv

CSV文件,是按照逗号进行分隔的文件

一、写入操作

  • 列表形式

    • 逐行写入

      import csv
      
      header = ['name', 'gender', 'age']
      with open('./test.csv', 'w', encoding='utf-8-sig', newline='') as f:
          writer = csv.writer(f)
          writer.writerow(header)
          writer.writerow(['林青霞', '女', 45])
          writer.writerow(['成龙', '男', 55])
          writer.writerow(['张曼玉', '女', 35])
      
      # 如果不设置newline='',则每添加一行数据,中间会添加一个空行
      # 对于有中文的数据,如果想通过excel打开不显示乱码,可以使用utf-8-sig编码,注意读取的时候编码方式要一致
    • 批量写入

      import csv
      
      header = ['name', 'gender', 'age']
      data = [
          ['林青霞', '女', 45],
          ['成龙', '男', 55],
          ['张曼玉', '女', 35]
      ]
      with open('./test.csv', 'w', encoding='utf-8-sig', newline='') as f:
          writer = csv.writer(f)
          writer.writerow(header)
          writer.writerows(data)
  • 字典形式

    • 逐行写入

      import csv
      
      header = ['name', 'gender', 'age']
      
      with open('./test.csv', 'w', encoding='utf-8-sig', newline='') as f:
          writer = csv.DictWriter(f, fieldnames=header)
          writer.writeheader()
          writer.writerow({'name': '林青霞', 'gender': '女', 'age': 45})
          writer.writerow({'name': '成龙', 'gender': '男', 'age': 55})
          writer.writerow({'name': '张曼玉', 'gender': '女', 'age': 35})
    • 批量写入

      import csv
      
      header = ['name', 'gender', 'age']
      data = [
          {'name': '林青霞', 'gender': '女', 'age': 45},
          {'name': '成龙', 'gender': '男', 'age': 55},
          {'name': '张曼玉', 'gender': '女', 'age': 35}
      ]
      
      with open('./test.csv', 'w', encoding='utf-8-sig', newline='') as f:
          writer = csv.DictWriter(f, fieldnames=header)
          writer.writeheader()
          writer.writerows(data)
    • 追加写入

      import csv
      
      header = ['name', 'gender', 'age']
      
      with open('./test.csv', 'a', encoding='utf-8-sig', newline='') as f:
          writer = csv.DictWriter(f, fieldnames=header)
          writer.writerow({'name': '刘德华', 'gender': '男', 'age': 50})
      
      # 将文件mode改为: a
      # 不需要再次写入字段行

二、读取操作

  • 列表形式

    import csv
    
    with open('./test.csv', 'r', encoding='utf-8-sig', newline='') as f:
       reader = csv.reader(f)
       for row in reader:
           print(row)
    • 列表形式读取结果示例

      ['name', 'gender', 'age']
      ['林青霞', '女', '45']
      ['成龙', '男', '55']
      ['张曼玉', '女', '35']
      ['刘德华', '男', '50']

      注意:csv文件中的数据均为字符串类型,比如age存入的时候是int类型,取出来的时候是str类型

  • 字典形式

    import csv
    
    with open('./test.csv', 'r', encoding='utf-8-sig', newline='') as f:
       reader = csv.DictReader(f)
       for row in reader:
           print(row)
    • 字典形式结果示例

      {'name': '林青霞', 'gender': '女', 'age': '45'}
      {'name': '成龙', 'gender': '男', 'age': '55'}
      {'name': '张曼玉', 'gender': '女', 'age': '35'}
      {'name': '刘德华', 'gender': '男', 'age': '50'}

       

标签:name,python,gender,age,writer,header,使用,csv
From: https://www.cnblogs.com/eliwang/p/16967917.html

相关文章

  • vue+elementUI 使用腾讯地图
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • WinUI(WASDK)使用MediaPipe检查手部关键点并通过ML.NET进行手势分类
    前言之所以会搞这个手势识别分类,其实是为了满足之前群友提的需求,就是针对稚晖君的ElectronBot机器人的上位机软件的功能丰富,因为本来擅长的技术栈都是.NET,也刚好试试全能......
  • spyder5 使用 PDM 包管理器管理虚拟环境
    第一步:修改Spyder的默认pythoninterpreter。1.clickthenameofthecurrentenvironmentinthestatusbar,andthenclick【ChangedefaultenvironmentinPr......
  • 使用TWEEN.js时update更新发现初始点位全部变成NaN
    在只用tween时只要执行了update方法就会发现传入的点变为NaN,从而导致模型消失console.log(t.target,t.paras);tw=newTWEEN.Tween(t.paras).to(t.target,d)......
  • 使用IDEA 进行 安卓开发
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • python之路45 初识django框架
    纯手撸web框架1.web框架的本质理解1:连接前端与数据库的中间介质理解2:socket服务端2.手写web框架1.编写socket服务端代码2.浏览器访问响应无效>>>:HTTP......
  • 命令提示符怎么打开和Dos命令的基本使用
    Dos命令Dos命令窗口我们可以通过win+R输入cmd来打开如果要用管理员身份打开直接在开始里搜索命令提示符,以管理员身份打开!一些简单的Dos命令//切换盘符盘符名://进入......
  • Python学习基础笔记十九——装饰器
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • uniCloud的简单使用
    什么是uniClouduniCloud是DCloud联合阿里云、腾讯云,为开发者提供的基于serverless模式和js编程的云开发平台。简单使用云函数/云对象数据库操作......
  • scrapy补充与Flask快速使用
    加代理,cookie,header,加入selenium加代理1.在爬虫中间件中(middlewares.py)classCnblogsDownloaderMiddleware:defget_proxy(self):importrequests......