求解:从txt文件导入字符序列到tablewidget的每个单元格中失败,结果是把txt文件中所有字符到每一个单元格中了,我想实现的是用空格分开的每个字符串单独导入每个单元格中,代码如下,怎样修改错误?
def kcbopen(self):
kcbname, _ = QFileDialog.getOpenFileName(self, "Open", "", "*.txt;;All Files(*)")
if kcbname != "": # “”为用户取消
self.textEdit.setText(kcbname)
data = []
with open(str(kcbname), 'r') as f:
for i in f:
data.append([j for j in i.split(" ")])
for i in range(self.tableWidget.rowCount()):
for n in range(self.tableWidget.columnCount()):
for s in data:
self.tableWidget.item(i, n).setText(str(s))
出错动画演示如下:
题中代码在读取txt文本文件后,是遍历字符串。尝试将其读取成列表,代码如下:
data=[]
with open('score1.txt', 'r',encoding='utf-8') as f:
for i in [x.strip() for x in f.read().split('\n')]:
data.append([j for j in i.split(" ")])
print(data)
F:\2021\qa\ot3>t3
[['学号', '思政', '微积分', '大学英语'], ['1001', '92', '80', '82'], ['1002', '90', '93', '87'], ['1003', '55', '61', '62'], ['1004', '94', '93', '92'], ['1005', '92', '95', '81'], ['1006', '75', '50', '61']]
改成这样
def kcbopen(self):
kcbname, _ = QFileDialog.getOpenFileName(self, "Open", "", "*.txt;;All Files(*)")
if kcbname != "": # “”为用户取消
self.textEdit.setText(kcbname)
data = []
with open(str(kcbname), 'r') as f:
for i in f:
data.append([j for j in i.strip().split(" ")])
for i in range(self.tableWidget.rowCount()):
for n in range(self.tableWidget.columnCount()):
self.tableWidget.item(i, n).setText(data[i][n])
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!