平常经常会用CSV存储数据,不可避免的会跟CSV文件的读写操作扯上关系。
Python有CSV这个Package来解决这个问题,官网也有比较详细的教程 https://docs.python.org/3/library/csv.html 。但是我觉得往往大家只是想进行简单的读写、修改等操作,网上纷纷扰扰的教程和官网的教程有点大而全了,反而无法让大家在最短的时间里实现最简单的功能。 所以我写一个简明用法来方便大家。
假设大家有一个comma delimited格式的csv文档(如果只有xlsx格式的Excel文件,可以先用Office Excel的另存为功能将其转为comma delimited格式的csv文档):
Name, School, Num
Allen, ECNU, 1
Eric, ECNU, 2
Shan, ECNU, 3
通过以下代码进行读取操作:
import csv def csv_to_list(csv_path): print("Begin to extract csv") csv_content=[] with open(csv_path) as csvfile: reader = csv.reader(csvfile) for row in reader: csv_content.append(row) print("The content of CSV file is: \n%s" % csv_content) return csv_content
获得的是一个列表:
[ [Name, School, Num], [Allen, ECNU, 1] , [Eric, ECNU, 2], [Shan, ECNU, 3] ]
假如我们想生成一个新的CSV文件,不包含School这一列:
import csv def write_csv(csv_write_path,csv_content): print("Remove the SCHOOL field of the information:") for each_line in csv_content: del(each_line[1]) print("Ready to write data to %s" % csv_write_path) with open(csv_write_path,'w',newline='') as csvfile: writer = csv.writer(csvfile) writer.writerows(csv_content) print("Content has written to new csv %s" % csv_write_path)
最终的结果会生成这样的一个新CSV:
Name, Num
Allen, 1
Eric, 2
Shan, 3