python中csv文件创建、读取及修改等操作实例
作者:m0_46483236 时间:2023-07-31 23:22:25
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,创建,csv文件
0
投稿
猜你喜欢
mysqlreport显示Com_中change_db占用比例高的问题的解决方法
2024-01-26 03:17:38
Python 列表去重去除空字符的例子
2021-07-11 02:49:14
Python 实现数据库更新脚本的生成方法
2024-01-15 22:35:43
table 行转列的sql详解
2024-01-27 00:44:57
mac下安装mysql忘记密码的修改方法
2024-01-25 17:34:01
TensorFlow2.0矩阵与向量的加减乘实例
2023-12-30 13:21:00
Python astype(np.float)函数使用方法解析
2021-02-23 17:28:16
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2023-01-11 15:30:37
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2023-06-15 21:26:42
IE6/7关于 Absolute Position 、relative 的一些意外
2008-11-27 11:34:00
服务器Centos部署MySql并连接Navicat过程详解
2024-01-15 11:53:30
用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
2024-01-26 16:53:22
MYSQL 无法识别中文的永久解决方法
2024-01-13 05:24:48
使用python连接mysql数据库之pymysql模块的使用
2024-01-16 13:12:11
pytorch 输出中间层特征的实例
2022-06-08 07:36:39
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2021-05-21 05:28:13
python微信好友数据分析详解
2022-01-27 20:36:39
jQuery Easyui实现左右布局
2024-04-09 19:48:22
MySQL中实现高性能高并发计数器方案(例如文章点击数)
2024-01-19 00:43:09
ASP使用xmlhttp定时触发事件
2008-08-19 18:09:00