Python怎么把pyqt5的tablewidget控件中的数据导出为TXT文件

如题,怎么把tablewidget控件中的数据导出为TXT文件并保存在程序目录下?
另外,保存的TXT文件必须是按照ASCII编码的,不能是UTF-8,每一行的每一个数据之间用逗号隔开,每一行的最后一个数据后不加逗号,请问一下怎么操作?。
数据格式如图:

img

可以参考这篇文章,实现你的需求
一文小入门pyQt5 —— 从零到一完成一个Excel文件处理程序_希sir的博客-CSDN博客_pyqt5打开excel并显示

试试。


# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import *

class MyTable(QWidget):
    def __init__(self):
        super(MyTable, self).__init__()

    def init_ui(self):
        '''
        初始化控件
        '''
        self.setWindowTitle("QTableWidget例子")
        self.resize(700, 400)
        layout = QHBoxLayout()
        self.tableWidget = QTableWidget(10, 4)
        self.tableWidget.setHorizontalHeaderLabels(['序号', '账号', '姓名', '金额'])

        dataset = [
            ['1', '611111', '张三', '20000'],
            ['2', '6222222', '李四', '3235'],
            ['3', '633333333', '王五', '3353'],
            ['4', '611111', '张三', '100000']
        ]

        # 添加数据
        for i in range(len(dataset)):
            for j in range(len(dataset[0])):
                newItem = QTableWidgetItem(dataset[i][j])
                self.tableWidget.setItem(i, j, newItem)

        layout.addWidget(self.tableWidget)
        self.setLayout(layout)

    def save_totxt(self):
        '''
        保存控件数据到txt文件
        '''
        col_num = self.tableWidget.columnCount()  # 获取当前的列数
        row_num = self.tableWidget.rowCount()  # 获取当前的列数
        f = open("d:/out.txt", "w")

        for i in range(row_num):
            line = ""
            for j in range(col_num ):
                item = self.tableWidget.item(i, j)
                if item != None:
                    str = item.text()
                    print(str)
                    if j == 0:
                        line = str
                    else:
                        line = line + ", " + str
            f.write(line + "\n")
        f.close()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = MyTable()
    win.init_ui()      # 初始化控件
    win.save_totxt()  # 保存控件数据到txt文件
    win.show()
    sys.exit(app.exec_())

img

img

img