CSV文件:Comma-Separated Values,逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。用文本文件和Excel都可以打开CSV文件。
下面是分别用excel和记事本打开的两个csv文件。
规范的t.csv
非规范的test.csv
注意:
如果单元格内容中存在逗号,那么这个单元格内容会用双引号分隔出来。如图中test.csv中第一个单元格。
如果单元格内容中存在双引号,那在记事本打开同样会多加引号,具体怎么加这里csv的处理规则好像有点奇怪,目前我也还没完全搞明白。
一般的csv文件都有规范的表头和对应的每行数据,前两张图片中打开的都是规范的csv文件,后两张图片打开的是非规范的csv文件,而Python的csv库中也只有对csv文件整行的操作,并没有像excel一样可以对任意单元格操作,所以要对非规范的csv文件操作任意单元格是困难的。
本文实现了对非规范的csv文件的操作。
思路:csv–>二维列表–>通过列表定位单元格–>列表重写成csv
代码如下:
import csv
class HandleCsv:
# 定义存放csv内容的list
csv_list = []
def __init__(self, filename):
self.filename = filename
with open(self.filename)as fp:
self.csv_list = list(csv.reader(fp))
print(self.csv_list)
# 在第N行第M列空白单元格处修改内容
def mod