Python对csv文件指定单元格的处理

Delphine ·
更新时间:2024-09-20
· 736 次阅读

CSV文件:Comma-Separated Values,逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。用文本文件和Excel都可以打开CSV文件。

下面是分别用excel和记事本打开的两个csv文件。
规范的t.csv
图1
在这里插入图片描述

非规范的test.csv
在这里插入图片描述在这里插入图片描述

注意:
如果单元格内容中存在逗号,那么这个单元格内容会用双引号分隔出来。如图中test.csv中第一个单元格。

一般的csv文件都有规范的表头和对应的每行数据,前两张图片中打开的都是规范的csv文件,后两张图片打开的是非规范的csv文件,而Python的csv库中也只有对csv文件整行的操作,并没有像excel一样可以对任意单元格操作,所以要对非规范的csv文件操作任意单元格是困难的。

本文实现了对非规范的csv文件的操作。
思路:csv–>二维列表–>通过列表定位单元格–>列表重写成csv

代码如下:

import csv class Handle_csv: # 定义存放csv内容的list csv_list = [] def __init__(self, filename): self.filename = filename with open(self.filename)as f: self.csv_list = list(csv.reader(f)) # 在(n,m)第N行第M列空白单元格处插入或者修改内容 def mod_csv(self, n, m, value): self.csv_list[n - 1][m - 1] = value # 获取第n行第m列单元格内容 def get_value(self, n, m): return self.read_csv()[n - 1][m - 1] # 把修改过的list转csv def list2csv(self, file_path): try: f = open(file_path, 'w') for items in self.csv_list: for item in items: f.write(item) f.write(',') f.write('\n') except Exception as e: print(u'文件写入失败!,请检查文件路径及列表格式是否正确') finally: f.close() if __name__ == '__main__': h_csv = Handle_csv(u'test.csv') h_csv.mod_csv(2, 2, u'内容') h_csv.list2csv(u'test.csv')

读取出的二维list

[['这是一段文字,', '2', '3', '', ''], ['名称', '内容', '内容', '', '5'], ['6', '7', '', '', '']]
作者:Code_For_Nothing



单元 csv csv文件 Python 单元格

需要 登录 后方可回复, 如果你还没有账号请 注册新账号