python 如何读、写、解析CSV文件


Posted in Python onMarch 03, 2021

您知道将表格数据存储到纯文本文件背后的机制是什么吗?答案是CSV(逗号分隔值)文件,该文件允许将数据转换为纯文本格式。在这篇文章中关于“在Python如何阅读CSV文件”中,我们将学习如何读,写和解析的CSV文件的Python。

将详细讨论以下方面:

  • 什么是CSV文件及其用途?
  • 为什么使用CSV文件格式?
  • Python CSV模块

                 CSV模块功能

  • 在Python中执行写入,读取CSV文件的操作
  • 让我们开始吧。

什么是CSV文件及其用途?

CSV(逗号分隔值)是一种纯文本文件格式,用于存储表格数据(例如电子表格或数据库)。它本质上存储的表格数据包括数字和纯文本。大多数在线服务使用户可以自由地将网站中的数据导出为CSV文件格式。CSV文件通常会在Excel中打开,几乎所有数据库都具有不同的特定工具以允许导入相同的文件。

文件的每一行都称为记录。每个记录由用逗号分隔 的字段组成,这些字段也称为“定界符”,这是默认定界符,其他记录包括pipe(|),分号(;)。下面给出的是一个普通CSV文件的结构,以逗号分隔,我正在使用一个泰坦尼克号CSV文件。

结构

Passenger,Id,Survived,Pclass,Name,Sex.Age
1,0,3 Braund, Mr. Owen Harris ,male, 22
2,1,1 Cumings, Mrs. John Bradley (Florence Briggs Thayer), female,38
3,1,3 Heikkinen, Miss. Laina ,female, 26
4,1,1 Futrelle, Mrs. Jacques Heath (Lily May Peel),female,35

继续说说使用CSV文件格式的原因。

为什么使用CSV文件格式?

CSV是纯文本文件,它使数据交换更容易,也更易于导入到电子表格或数据库存储中。例如:您可能希望将某个统计分析的数据导出到CSV文件,然后将其导入电子表格以进行进一步分析。总体而言,它使用户可以通过编程轻松地体验工作。任何支持文本文件或字符串操作的语言(例如Python)都可以直接使用CSV文件。

继续前进,让我们看看Python如何原生使用CSV。

Python CSV模块

Python使用的CSV软件包是标准库的一部分,因此您无需安装它。

import csv

现在,让我向您展示不同的CSV功能。

CSV模块功能

在CSV模块下,您可以找到以下功能:

python 如何读、写、解析CSV文件

让我们继续前进,从Python CSV文件上不同操作的编码角度来看。

Python中CSV文件的操作

加载CSV文件后,您可以执行多种操作。我将在Python中显示对CSV文件的读取和写入操作。

在Python中读取CSV文件:

import csv 
 
with open('Titanic.csv','r') as csv_file: #Opens the file in read mode
  csv_reader = csv.reader(csv_file) # Making use of reader method for reading the file
 
  for line in csv_reader: #Iterate through the loop to read line by line
    print(line)

输出:

python 如何读、写、解析CSV文件

在这里,从输出中可以看到,我已经使用了Titanic CSV File。并且所有字段都用逗号分隔,文件被读入Python。

继续前进,让我们看看如何写入CSV文件。

用Python写入CSV文件:

import csv
 
with open('Titanic.csv', 'r') as csv_file:
  csv_reader = csv.reader(csv_file)
 
  with open('new_Titanic.csv', 'w') as new_file: # Open a new file named 'new_titanic.csv' under write mode
    csv_writer = csv.writer(new_file, delimiter=';') #making use of write method
 
    for line in csv_reader: # for each file in csv_reader
      csv_writer.writerow(line) #writing out to a new file from each line of the original file

out:

python 如何读、写、解析CSV文件

现在,这种使用读写器方法处理CSV文件的方法是最常见的方法之一。让我们继续前进,看看如何使用python字典来做同样的事情。

读取CSV文件作为字典:

import csv 
 
with open('Titanic.csv','r') as csv_file: #Open the file in read mode
  csv_reader = csv.DictReader(csv_file) #use dictreader method to reade the file in dictionary
 
  for line in csv_reader: #Iterate through the loop to read line by line
    print(line)

输出:

python 如何读、写、解析CSV文件

从输出中可以看到,字段已被替换,它们现在充当字典的“键”。

让我们看看如何将CSV文件作为字典写入。

作为字典写入CSV文件

import csv 
 
mydict = [{'Passenger':'1', 'Id':'0', 'Survived':'3'}, #key-value pairs as dictionary obj
     {'Passenger':'2', 'Id':'1', 'Survived':'1'},
     {'Passenger':'3', 'Id':'1', 'Survived':'3'}]
 
fields = ['Passenger', 'Id', 'Survived'] #field names
 
filename = 'new_Titanic.csv' #name of csv file
 
with open('new_Titanic.csv', 'w')as new_csv_file: #open a new file 'new_titanic,csv' under write mode
  writer = csv.DictWriter(new_csv_file, fieldnames=fields) 
  writer.writeheader() #writing the headers(field names)
 
  writer.writerows(mydict) #writing data rows

输出:

python 如何读、写、解析CSV文件

让我们看看如何在python中将CSV文件读取为熊猫。

以熊猫格式读取CSV文件:

import pandas #install pandas package
 
result = pandas.read_csv('Titanic.csv') #read the csv file
 
print(result) # print result

输出:

python 如何读、写、解析CSV文件

这使我们到文章“如何在Python中读取CSV文件”的结尾。我希望您对与CSV相关的所有概念,如何读写它,如何将CSV作为字典进行读写以及如何将CSV作为熊猫进行阅读都一目了然。

确保尽可能多地练习并恢复经验。

以上就是python 如何读、写、解析CSV文件的详细内容,更多关于python 读写解析CSV文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python字符串对其居中显示的方法
Jul 11 Python
详解python进行mp3格式判断
Dec 23 Python
Python读取properties配置文件操作示例
Mar 29 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
Python实现简单的用户交互方法详解
Sep 25 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
用python做游戏的细节详解
Jun 25 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
python 第三方库paramiko的常用方式
Feb 20 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 #Python
python 递归相关知识总结
Mar 03 #Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 #Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 #Python
神经网络训练采用gpu设置的方式
Mar 03 #Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 #Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 #Python
You might like
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
php中的常用魔术方法总结
2013/08/02 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
Python中的闭包总结
2014/09/18 Python
详解Python字典的操作
2019/03/04 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
西尔斯百货官网:Sears
2016/09/06 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
岗位廉洁从政承诺书
2014/03/27 职场文书
教师节活动总结
2014/08/29 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript