STC214/Python中CSV文件读写

Created Mon, 21 Jun 2021 18:21:57 +0800 Modified Mon, 21 Jun 2021 18:21:57 +0800

首先读写csv文件需要引入官方库

import csv

本文使用的csv文件随便建立一个即可,使用wps等办公软件或者手撸一个utf-8格式的文件都可以

读文件:

普通编写的csv文件和wps、word编写的csv文件编码可能不同。

按照习惯从空白文件编写的一般为utf-8编码。

word之类的文字办公软件通常如果为中文的话。

会选择gbk或者gb2312编码。

这种时候读写时需要标注对应编码。


f1 = open('py_ssv/test.csv', 'r', encoding='utf-8')

with f1:
    reader = csv.reader(f1)

    for i in reader:
        for j in i:
            print(j)
            print(type(j))

print('#'*50)

f1 = open('py_ssv/工作簿1.csv', 'r', encoding='gbk')

with f1:
    reader = csv.reader(f1)

    for i in reader:
        for j in i:
            print(j)
            print(type(j))

写文件:

使用csv.writer.writerow可以写一行,通过可迭代的字典或者列表等对象形式,每个元素占用一个格子。

使用csv.writer.writerow可以写多行,通过可迭代的字典或者列表等对象形式,每一行的元素必须是可迭代对象,可迭代对象中的每个元素占一格。每一个可迭代对象占一行。

nms = [[1, 2, 3],
 [7, 8, 9], 
 [10, 11, 12]]

f = open('py_ssv/工作簿1.csv', 'w',encoding='utf-8',newline='')

with f:

    writer = csv.writer(f)
    writer.writerows(nms)

nms = [1,1,1,1,1,1,1,1,1]

f = open('py_ssv/工作簿1.csv', 'w',encoding='utf-8',newline='')

with f:

    writer = csv.writer(f)
    writer.writerow(nms)

可以根据需求构造列表生成式或者合通过其他方法构造可迭代对象对csv文件进行读写操作。至于增加和减少只是对原文内容进行增删替换操作等。根据需求处理即可