Python操作CSV文件:读写、增删行列及空行处理详解

七月
七月
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍Python中读写CSV文件的多种方法,包括使用csv模块和pandas库。重点讲解如何在现有CSV文件中增加新的列(如label和is_cc)并写入数据,同时提供解决writerows产生多余空行的技巧。内容涵盖基础代码实现、数据框操作及常见错误排查,适合需要处理结构化数据的开发者参考。

Python读写CSV文件概述

本文展示在Python中读取和写入CSV文件并增加行列的具体实现方式,相关代码如下。


# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 11:28:17 2017
@author: Shawn Yuen
"""
import csv
d = list(range(38685))
with open('./kinetics_test.csv') as f1:
 f_csv = csv.DictReader(f1)
 for i, row in enumerate(f_csv):
 #print(row)
 key1 = 'label'
 value1 = 'test'
 row[key1] = value1
 key2 = 'is_cc'
 value2 = '0'
 row[key2] = value2
 d[i] = row
f1.close()
headers = ['label', 'youtube_id', 'time_start', 'time_end', 'split', 'is_cc']
with open('./kinetics_test_new_.csv', 'w') as f:
 f_csv = csv.DictWriter(f, headers)
 f_csv.writeheader()
 f_csv.writerows(d)
f.close()
with open('./kinetics_test_new_.csv','rt') as fin:
 lines=''
 for line in fin:
 if line!='\n':
  lines+=line
with open('./kinetics_test_new.csv','wt')as fout:
 fout.write(lines)

获取测试数据与手动处理

首先需要获取测试数据以进行后续操作。

第一种方式是通过Excel软件打开CSV文件,手动添加label和is_cc字段。

使用csv模块增加行列

第二种方式是利用Python内置的csv模块进行代码改写。

解决多余空行问题

在使用writerows生成CSV文件时,可能会发现文件中出现了多余的空行,针对此问题可参考相关解决方案。

关于Python使用writerows写入CSV时产生多余空行的问题,可查阅参考资料以获取解决方法。

此外,Python中定义具有给定初值或特定长度的列表也是一种常见需求。

Python写入CSV的其他方法

以下是知识点的扩展内容。

总结Python中写入CSV文件的几种常用方法。

使用Pandas库处理CSV

最普遍的方法是使用pandas库。


import pandas as pd
#任意的多组列表
a = [1,2,3]
 b = [4,5,6] 
#字典中的key值即为csv中列名
dataframe = pd.DataFrame({'a_name':a,'b_name':b})
#将DataFrame存储为csv,index表示是否显示行名,default=True
 dataframe.to_csv("test.csv",index=False,sep=',')
 a_name b_name
 0 1 4
 1 2 5
 2 3 6

pandas同样提供了便捷的读取CSV文件的方法。


import pandas as pd
 data = pd.read_csv('test.csv')

读取后会得到一个DataFrame类型的数据对象,若不熟悉相关处理操作,可参考pandas十分钟入门教程。

使用csv模块逐行写入

另一种方法是使用csv包,逐行写入数据。


import csv
#python2可以用file替代open
 with open("test.csv","w") as csvfile: 
 writer = csv.writer(csvfile)
 #先写入columns_name
 writer.writerow(["index","a_name","b_name"])
 #写入多行用writerows
 writer.writerows([[0,1,3],[1,2,3],[2,3,4]])

 index a_name b_name
 0 1 3
 1 2 3
 2 3 4

读取CSV文件时可使用reader对象。


import csv
 with open("test.csv","r") as csvfile:
 reader = csv.reader(csvfile)
 #这里不需要readlines
 for line in reader:
  print line

最后对以上内容进行总结。

以上介绍了Python读写CSV文件并增加行列的实例代码,希望有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!如果您觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表