python中csv文件创建、读取及修改等操作实例
作者:m0_46483236 发布时间:2023-07-31 23:22:25
标签:python,创建,csv文件
1. python中创建新的csv文件
(1). 使用csv.writer()创建:
代码如下:
import csv
headers = ['学号','姓名','分数']
rows = [('202001','张三','98'),
('202002','李四','95'),
('202003','王五','92')]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(rows)
会在相同路径下生成一个score.csv文件
VScode中打开如下:
用excel打开如下:
可以发现,逗号','在csv文件中代表换格。除此以外,还有'\n'在csv文件中代表换行。
(2). 使用csv.Dictwriter()创建:
代码如下:
import csv
headers = ['学号','姓名','分数']
rows = [{'学号':'202001','姓名':'张三','分数':'98'},
{'学号':'202002','姓名':'李四','分数':'95'},
{'学号':'202003','姓名':'王五','分数':'92'}]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.DictWriter(f,headers)
writer.writeheader()
writer.writerows(rows)
会发现结果和方式1相同。
(3). 使用writelines()创建:
import csv
headers = ['学号,姓名,分数','\n']
csv = ['202001,张三,98','\n',
'202002,李四,95','\n',
'202003,王五,92']
with open('score.csv', 'w',encoding='utf8',newline='') as f:
f.writelines(headers) # write() argument must be str, not tuple
f.writelines(csv)
会发现结果和方式1、方式2相同。
综合上述三种方式,csv文件的创建灵活多样,主要依赖于自己创建的原来数据的存放形式,比如方式1、2中的rows和方式3中的csv,以此选择适合的创建csv文件的函数和方式。
实际示例(要灵活使用','、'\n'、append()等):
csv = []
for line in lines:
scores = result[line[0]]
for wav, scores in scores.items():
# csv.append(line[0])
# csv.append(wav)
# csv.append(str(i) for i in scores)
# csv.append('\n')
#csv.append(','.join([wav] + [str(i) for i in scores] + '\n'))
csv.append(line[0] +','+ wav )
for i in scores:
csv.append(','+ str(i))
csv.append('\n')
with open('task3-result.csv', 'w') as f:
f.writelines(csv)
2. python中读取csv文件
原score.csv文件在excel中打开如下:
(1). 使用pandas.read_csv()读取
代码如下:
import pandas as pd
my_matrix = pd.read_csv('score.csv')#,header=None,index_col=None)
'''
header : int or list of ints, default ‘infer',指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,
index_col : int or sequence or False, default None,用作行索引的列编号或者列名
'''
print(my_matrix)
print(my_matrix.shape)
此时的输出结果为:
若代码参数改为:
my_matrix = pd.read_csv('score.csv',header=None,index_col=None)
结果如下:
若代码参数改为:
my_matrix = pd.read_csv('score.csv',header=0,index_col=0)
结果如下:
为了方便后续分析,可以将数据类型改为np.array型,代码如下:
import pandas as pd
import numpy as np
my_matrix = pd.read_csv('score.csv')#,header=0,index_col=0)
my_matrix = np.array(my_matrix)
print(my_matrix)
print(my_matrix.shape)
print(my_matrix[0][0])
结果如下:
(2). 使用csv.reader()进行读取
代码如下:
import csv
#读取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
结果如下:
如果想获取某一列,可以通过指定的列标号来查询,代码如下:
for row in reader:
print(row[0])
可以输出某一指定的列 ,结果如下:
(3). 使用csv.DictReader()进行读取
代码如下:
import csv
#读取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
结果如下:
如果想获取某一列,可以通过指定的标题来查询,代码如下:
for row in reader:
print(row['学号'])
可以输出指定的某一列,结果如下:
来源:https://blog.csdn.net/m0_46483236/article/details/109583685


猜你喜欢
- 本文实例讲述了Python随机生成彩票号码的方法。分享给大家供大家参考。具体如下:前些日子在淘宝上买了一阵子彩票,每次都是使用淘宝的机选,每
- canal简介由阿里巴巴开源 github地址:https://github.com/alibaba/canalCanal是阿里巴巴开源的一
- 最近接触到Tencent的广告越来越多,户外广告牌和电视上都是,可以明显感觉到Tencent的扩张野心,以及对QQ品牌定位的重塑。摆脱低龄化
- 发现问题一个作业报错,报错信息如下,从错误信息根本看不出为什么出错,手工运行作业又成功了。一时不清楚什么原因导致作业出错。MessageEx
- 前言我们交换数组可以实现元素上下移动了,这个效果我们在表格或以前排序算法中都会用到,下面来看一个JavaScript下实现交换数组元素上下移
- 1、超时时间以下这些配置项单位都是秒,在mysql命令行中可以使用show global variables like '变量名
- 全局事件总线,是组件间的一种通信方式,适用于任何组件间通信。看下面具体的例子。父组件:App<template>
- 本文将研究 ES6 的 for ... of 循环。旧方法在过去,有两种方法可以遍历 javascript。首先是经典的 for i 循环,
- 目录一、简介思路高德地图API二、获取经纬度三、路线规划(四种方式)获取出行路线数据处理四、演示效果五、结尾一、简介路径规划中包括步行、公交
- 卷积在pytorch中有两种实现,一种是torch.nn.Conv2d(),一种是torch.nn.functional.conv2d(),
- 一、前言本文就从数据爬取、数据清洗、数据可视化,这三个方面入手,但你简单完成一个小型的数据分析项目,让你对知识能够有一个综合的运用。整个思路
- 阅读《YUI学习笔记(1)》《YUI学习笔记(2)》YAHOO.lang.later,YAHOO.lang.trim,YAHOO.lang.
- Vue.js使用自定义事件的表单输入组件自定义事件可以用来创建自定义的表单输入组件,使用 v-model 来进行数据双向绑定。要牢记:<
- mat数据格式是Matlab默认保存的数据格式。在Python中,我们可以使用h5py库来读取mat文件。>>> impo
- Pytorch 多分类模型绘制 ROC, PR 曲线(代码 亲测 可用)ROC曲线示例代码import torchimport torch.
- 有时候,女神发来一条消息,说约你看电影,她考虑了一下,又撤回了,不约你了…而你又想知道她究竟发了什么,该怎么办?微信防撤回了解一下。环境要求
- logger:日志器对象,可通过logging.getLogger()方法获取handler:处理器对象,将日志信息输出到指定位置,可通过l
- 一、简介Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格
- 一、前言用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架。如果数据量很大,一个MYSQL库存储
- 版本Sublime Text v4.0(4143) 所需软件Sublime Text v4.0(4143)下载地址:https://www.