Python对csv文件指定单元格的处理
2020-05-05 12:28
1196 查看
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 modify(self, n, m, value): self.csv_list[n - 1][m - 1] = value # 插入第N行 def insert_row(self, n): self.csv_list.insert(n - 1, []) # 在第N行第M列单元格插入 def insert_col(self, n, m, value): # 如果该单元格左边的单元格为空,那么先对左边的单元格写入空格 if len(self.csv_list[n - 1]) < m: if len(self.csv_list[n - 1]) == m - 1: self.csv_list[n - 1].append(value) else: for i in range(len(self.csv_list[n - 1]), m - 1): self.csv_list[n - 1].append('') self.csv_list[n - 1].append(value) else: self.modify(n, m, value) # 删除第N行 def del_row(self, n): del self.csv_list[n - 1] # 获取第n行第m列单元格内容 def get_value(self, n, m): return self.csv_list[n - 1][m - 1] def list2csv(self, file_path): try: fp = open(file_path, 'w') for items in self.csv_list: for i in range(len(items)): # 若元素中含有逗号,那么需要加双引号 if items[i].find(',') != -1: fp.write('\"') fp.write(items[i]) fp.write('\"') else: fp.write(items[i]) # 最后一个元素不用加逗号 if i < len(items) - 1: fp.write(',') fp.write('\n') except Exception as e: print(e) if __name__ == '__main__': h_csv = HandleCsv(u'test.csv') # 在第4行处插入一行 h_csv.insert_row(4) # 在第4行第4列处插入单元格 h_csv.insert_col(4, 4, '第4行,第4列') h_csv.list2csv(u'test.csv')
运行程序前的csv:
运行程序后的csv:
相关文章推荐
- python处理某些文件夹下的csv文件,提取指定行到新文件中
- 学习笔记(19):21天搞定分布式Python网络爬虫-CSV处理-读取CSV文件的两种方式
- 使用python处理中文csv文件,并让excel正确显示中文(避免乱码)
- python处理CSV文件格式数据
- python用pandas工具包来处理.csv文件,包括读写和切片。
- Python数据处理-将数据保存为txt、csv等文件格式方法
- python处理文件(.csv)
- 写个python脚本,处理bitmap.fnt文件,将信息存放入.csv文件中
- Python 处理CSV文件
- 使用python处理中文csv文件,并让excel正确显示中文(避免乱码)
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
- python 处理csv文件去除第一行,并写入另一个csv
- Python使用pandas处理CSV文件的实例讲解
- Python_使用csv模块解析csv文件(处理Excel表格)
- python处理文本文件实现生成指定格式文件的方法
- python处理csv文件
- python 对多个csv文件分别进行处理的方法
- Python按指定列读取csv文件及写文件时的隔行问题
- Python csv 写文件时默认的空行最简单的处理方式
- python对csv文件的处理