通过Python
读取CSV文件的数据,或者将处理过的数据写入CSV文件都是比较常用到的功能,比如数据分析、预测模型的建立等等都需要得上。假如总是在写代码的时候才百度语句用法,效率将会大打折扣。与其大量搜索,甄选能用的上的内容,还不如一文搞定几个可能用得上的例子,发挥拿来主义精神,懂用能用就行。
首先是引入csv
模块和os
模块。前者跟CSV文件的读写有关,后者跟文件的读取有关。
import csv
import os
接下来就是一些博主自己写的例子:
- 读取
path
下的所有文件的名称(如果是文件夹就返回文件夹的名称),放到一个列表filenames
列表里面,返回filenames
。
def getFileNames(path):
filenames = os.listdir(path)
return filenames
- 获取path下的所有CSV文件的名称,放到一个列表里面,然后返回列表。这里先读取了所有文件的名称,然后通过列表循环的方法遍历所有文件的名称,判断文件是否为CSV文件。如果是,放入列表;如果不是,继续遍历。这里的判断比较简单粗暴,就看文件名称的字符串最后三位是不是
'csv'
。
def getCSVNames(path):
filenames = os.listdir(path)
return [a for a in filenames if a[-3:] == 'csv']
- CSV文件的数据读取,通常一行一行的读,不容易崩溃。
with open(file, 'r') as f:
reader = csv.reader(f)
# 一行一行读取CSV文件,记录数值
for row in reader:
# 判断这一行数据里有没有'Righton'字符串
if 'Righton' in row:
Righton[i[-12:-4]] += 1
- CSV文件的创建,以及写入数据。
encoding='utf8'
用来确定编码。newline=''
是为了防止写入一行数据后再空一行。.truncate()
用来清空这个CSV文件内的数据。.writerow()
就是在这一行写入数据,你的列表中的一个元素在CSV表格内占一个格子。
with open(new_file, 'w', encoding='utf8', newline='') as f:
f.truncate()
csv_write = csv.writer(f)
csv_write.writerow(['Lefton'])
先写这么多吧,以后再补。