CSV文件储存

Posted jonas-von

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSV文件储存相关的知识,希望对你有一定的参考价值。

CSV文件储存

  CSV,全称为 Comma-Separated Vaules,翻译为逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成,字段之间的分隔符是字符串或其他字符,最常见的是逗号或制表符。不过所有记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。它比Excel文件更加简洁,XLS文本是电子表格,它包含了文本、数值、公式和格式等内容,而CSV中不包含这些内容,就是特定字符分隔的纯文本,结构简单清晰。下面用一个简单的实例来介绍CSV:

import csv

with open(data.csv,w) as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow([id,name,age])
    writer.writerow([1001,jonas,18])
    writer.writerow([1002,jerry,17])
    writer.writerow([1003,tom,16])

首先,打开data.csv文件,然后指定打开的模式为w,获得文件句柄,随后调用csv库的writer()方法初始化写入对象,传入该句柄,然后调用writerow()方法传入每行的数据即可完成写入。然后通过文本形式直接打开data.csv会发现,刚才写入的数据都是通过逗号分隔开的,当然,在写入的时候也可以修改这个分隔符:

import csv

with open(data.csv,w) as csvfile:
    writer = csv.writer(csvfile,delimiter= )
    writer.writerow([id,name,age])
    writer.writerow([1001,jonas,18])
    writer.writerow([1002,jerry,17])
    writer.writerow([1003,tom,16])

上面这里指定空格为分隔符。另外,还可以通过调用writerows()方法同时写入多行,此时参数就需要为二维列表:

 

import csv

with open(data.csv,w) as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow([id,name,age])
    writer.writerows([[1001,jonas,18],[1002,jerry,17],[1003,tom,16]])

 

除此以外,csv库还提供了字典的写入方式:

import csv

with open(data.csv,w) as csvfile:
    fieldnames = [id,name,age]
    writer = csv.DictWriter(csvfile,fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({id:1001,name:jonas,age:18})
    writer.writerow({id:1002,name:jerry,age:20})

先定义3个字段,用fieldnames表示,然后将其传给DictWriter来初始化一个字典写入对象,接着可以调用writeheader()方法先写入头信息,然后再调用writerow()方法传入相应字典。

 

除了上面介绍的写入信息,还可以通过csv库来读取.csv的文件:

import csv

with open(data.csv,r,encoding=utf-8) as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

通过遍历输出的每行结果都是一个列表。


以上是关于CSV文件储存的主要内容,如果未能解决你的问题,请参考以下文章

请问python中如何读取一个csv或者dat文件,并储存为一个二维数组?

Python学习之旅-10-文件储存:txt文件csv文件json文件

文件读取与转换

Python 读取csv的某行

nzSQLException 读取超时错误

遍历多个dat文件,更新并储存在一个单独的目录作为单独的文件