super csv 写入csv 默认单元格没有引号问题

本文介绍了一种特定的CSV文件处理方式,通过CsvPreference类来定制CSV文件的读写偏好,包括使用特定字符作为分隔符、转义字符及换行符,并强调了如何设置固定的引用模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CsvPreference preference = new CsvPreference.Builder('"', 'Δ', "\r\n").useQuoteMode(new AlwaysQuoteMode()).build();

需要设置useQuoteMode

class TableModel(QAbstractTableModel): def __init__(self, data=None, headers=None, parent=None): super().__init__(parent) # 初始化数据(二维列表:每行是一个列表,对应表格的一行数据) #self._data = data if data else [] self._data = [] # 列标题(列表,如["姓名", "年龄", "性别"]) #self._headers = headers if headers else [] self._headers = ["SID", "Time", "Chn", "T/Rx", "ID_index", " SendType", "RemoteFlag", "ExternFlag", "Len", "Data(hex)", "button"] def rowCount(self, parent=QModelIndex()): #"""返回行数(必须重写)""" return len(self._data) def columnCount(self, parent=QModelIndex()): #"""返回列数(必须重写)""" # new 0722 # return len(self._headers) if self._data else 0 return len(self._headers) # new 0722 # 单元格数据 def data(self, index, role=Qt.DisplayRole): #"""返回指定位置的数据(必须重写)""" # new 0723 if role == Qt.TextAlignmentRole: return Qt.AlignCenter # new 0723 if not index.isValid() or role != Qt.DisplayRole: return None # 仅处理显示角色(DisplayRole) row = index.row() col = index.column() # new 0723 if role == Qt.DisplayRole and col == 0: value = self._data[row][col].split(" ")[0] return str(value) # new 0723 if row >= len(self._data) or col >= len(self._headers): return None return self._data[row][col] # 返回第row行第col列的数据 # 表头 def headerData(self, section, orientation, role=Qt.DisplayRole): #"""返回列标题(可选重写)""" if orientation == Qt.Horizontal and role == Qt.DisplayRole: return self._headers[section] if section < len(self._headers) else None # new 添加行号行头 0721 if orientation == Qt.Vertical and role == Qt.DisplayRole: return str(section + 1) # new 添加行号行头 0721 return None # 垂直标题(行号)默认使用行索引,无需额外处理 def add_row(self, row_data): #"""动态添加一行数据(触发视图更新)""" # 通知视图:开始插入行(参数:父索引、插入位置起始行、结束行) self.beginInsertRows(QModelIndex(), self.rowCount(), self.rowCount()) self._data.append(row_data) # 实际添加数据到模型 self.endInsertRows() # 通知视图:插入完成 # def update_data(self, row, col, new_value): # #"""更新指定位置的数据(触发视图刷新)""" # if 0 <= row < len(self._data) and 0 <= col < len(self._headers): # self._data[row][col] = new_value # # 通知视图:指定位置数据已修改(参数:起始索引、结束索引) # self.dataChanged.emit(self.index(row, col), self.index(row, col)) # new 清理表格功能 0721 def clear_Table(self): rows = self.rowCount() if rows > 0: # self.beginResetModel(QModelIndex(), 0, rows -1) # new 0722 self.beginResetModel() self._data = [] # 清空数据 self.endResetModel() # 通知视图重置完成 pyqt 中列的表头通过txt保存的时候也能够一起保存怎么写
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值