Python处理csv文件实例详解

Python处理csv文件

csv(comma-separated values)即逗号分隔值,可以用excel打开查看。由于是纯文本,任何编辑器也都可打开。与excel文件不同,csv文件中:

值没有类型,所有值都是字符串

不能指定字体颜色等样式

不能指定单元格的宽高,不能合并单元格

没有多个工作表

立即学习“Python免费学习笔记(深入)”;

不能嵌入图像图表

在CSV文件中,以,作为分隔符,分隔两个单元格。像这样a,,c表示单元格a和单元格c之间有个空白的单元格。依此类推。

不是每个逗号都表示单元格之间的分界。所以即使CSV是纯文本文件,也坚持使用专门的模块进行处理。Python内置了csv模块。先看看一个简单的例子。

从CSV文件中读取数据

import csvfilename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:    reader = csv.reader(f)print(list(reader))

登录后复制

data不能直接打印,list(data)最外层是list,里层的每一行数据都在一个list中,有点像这样

[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]

登录后复制

于是我们可以这样访问到Bob的年龄reader[1][1], 在for循环中遍历如下

import csvfilename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:    reader = csv.reader(f)for row in reader:# 行号从1开始print(reader.line_num, row)

登录后复制

要注意的是,reader只能被遍历一次。由于reader是可迭代对象,可以使用next方法一次获取一行。

import csvfilename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:    reader = csv.reader(f)# 读取一行,下面的reader中已经没有该行了head_row = next(reader)for row in reader:# 行号从2开始print(reader.line_num, row)

登录后复制

写数据到csv文件中

有reader可以读取,当然也有writer可以写入。一次写入一行,一次写入多行都可以。

import csv# 使用数字和字符串的数字都可以datas = [['name', 'age'],         ['Bob', 14],         ['Tom', 23],        ['Jerry', '18']]with open('example.csv', 'w', newline='') as f:    writer = csv.writer(f)for row in datas:        writer.writerow(row)        # 还可以写入多行writer.writerows(datas)

登录后复制

如果不指定newline=”,则每写入一行将有一空行被写入。上面的代码生成如下内容。

name,ageBob,14Tom,23Jerry,18name,ageBob,14Tom,23Jerry,18

登录后复制

DictReader和DictWriter对象

使用DictReader可以像操作字典那样操作数据,把表的第一行(一般是标头)作为key。使用key可访问行中那个key对应的数据。

import csvfilename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:    reader = csv.DictReader(f)for row in reader:# Max TemperatureF是表第一行的某个数据,作为keymax_temp = row['Max TemperatureF']print(max_temp)

登录后复制

使用DictWriter类,可以写入字典形式的数据,同样键也是标头(表格第一行)。

import csvheaders = ['name', 'age']datas = [{'name':'Bob', 'age':23},        {'name':'Jerry', 'age':44},        {'name':'Tom', 'age':15}        ]with open('example.csv', 'w', newline='') as f:# 标头在这里传入,作为第一行数据writer = csv.DictWriter(f, headers)    writer.writeheader()for row in datas:        writer.writerow(row)        # 还可以写入多行writer.writerows(datas)

登录后复制

以上就是Python处理csv文件实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2268708.html

(0)
上一篇 2025年2月27日 10:50:51
下一篇 2025年2月25日 08:00:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python对象类型的详细介绍

            对于python,一切事物都是对象,程序中存储的所有数据都是对象,对象基于类创建计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。class 指自定义类型,…

    2025年2月27日
    200
  • 电脑编程的主要内容是什么

    电脑编程的主要内容包括:算法设计数据结构编程语言计算机体系结构代码实现调试测试维护 电脑编程的主要内容 电脑编程是创建指令集的过程,这些指令集指导计算机执行特定任务。它的主要内容包括: 1. 算法设计 算法设计涉及创建逐步的说明,描述计算机…

    2025年2月27日
    200
  • 初学计算机语言学什么浯言

    Python、Java、C++、JavaScript 和 HTML/CSS 是适合初学者的计算机语言。Python:易于学习且多功能,强大的社区提供支持。Java:面向对象,平台无关,广泛用于企业级应用。C++:性能优化,用于系统编程,但复…

    2025年2月27日
    200
  • 现在主流的编程语言有哪些

    主流编程语言为 Java、Python、C++、JavaScript、C# 和 Go,每种语言都有其特点和应用领域。选择编程语言时,需考虑应用场景、学习曲线、社区支持、工具支持和生态系统。正确选择适合目标应用的语言,有助于高效完成开发任务。…

    2025年2月27日
    200
  • c语言类似的编程语言

    类似 C 语言的编程语言:C++:面向对象扩展,用于复杂应用程序。Java:面向对象语言,“一次编写,随处运行”。Python:解释型语言,简洁易读,用于数据科学和 Web 开发。Rust:系统编程语言,强调安全和并发。Go:并发编程语言,…

    2025年2月27日
    200
  • 电脑编程语言有哪些种类的

    编程语言种类繁多,包括:编译型语言(C、C++、Java)将程序编译为机器代码,执行速度快,开发时间长。解释型语言(Python、JavaScript、PHP)逐行解释程序,开发时间快,执行速度慢。面向对象语言(Java、C++、Pytho…

    2025年2月27日
    200
  • Python的发展史介绍

    一、Python发展历史         python语言因为简洁而清晰的风格,有大量适用性甚广的类库和python开源框架可以使用,而受到许多it界人士的喜爱。python的由来及发展历程又是怎样的呢,下面我们来简单的了解下。      …

    编程技术 2025年2月27日
    200
  • 电脑编程系统有哪些

    电脑编程系统是一种用于编写和执行程序的软件,其类型众多,包括 Visual Studio、Eclipse、Xcode 和 IntelliJ IDEA 等。选择编程系统应考虑因素包括:支持的语言、功能、易用性、价格和社区支持。 电脑编程系统 …

    2025年2月27日
    200
  • python之7进程线程和协程的详解

    前言:线程和进程的关系图   由下图可知,在每个应用程序执行的过程中,都会去产生一个主进程和主线程来完成工作,当我们需要并发的执行的时候,就会通过主进程去生成一系列的子进程(然后通过子进程产生一系列的子线程)来使不同的cpu调用,从而达到并…

    2025年2月27日 编程技术
    200
  • [译]The Python Tutorial#Data Structures

    [译]The Python Tutorial#Data Structures 5.1 Data Structures 本章节详细介绍之前介绍过的一些内容,并且也会介绍一些新的内容。 5.1 More on Lists 列表数据类型拥有更多方…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论