Почему item из списка записывается отдельно по знакам в listWidget?

Почему item из списка ряда с заголовками из .csv файла записывается отдельно и как решить такую проблему?

main.py:

class TEST(QtWidgets.QMainWindow, Ui_Window.Ui_MainWindow):
    def __init__(self):
        super(TEST, self).__init__()
        self.setupUi(self)
        assert isinstance(self.pushButton, object)
        self.pushButton.clicked.connect(self.select_file)

    def select_file(self):
        self.f_name = QtWidgets.QFileDialog.getOpenFileName(self, "Choose file")[0]
        with open(self.f_name, newline='') as D:
            reader = csv.reader(D, delimiter=";")
            count = 0
            for row in reader:
                if count == 0:
                    list_m = f'{" ".join(row)}'
                    for item in list_m:
                        self.listWidget.addItem(item)
                    #print(GIS)
                else:
                    DEPH = f'{row[0]}'  # - {row[1]}'
                    print(DEPH)
                count += 1


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ui = TEST()
    ui.show()
    app.exec_()
    sys.exit(app.exec_())

Ui_Window.py:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(374, 327)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setObjectName("listWidget")
        self.verticalLayout.addWidget(self.listWidget)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 374, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))

Ответы (2 шт):

Автор решения: CrazyElf
list_m = f'{" ".join(row)}'
for item in list_m:
    self.listWidget.addItem(item)

Ну вот же вы сделали строку list_m и зачем-то стали перебирать её в цикле по символам. Наверное, тут что-то другое задумывалось. Например:

for item in row:
    self.listWidget.addItem(item)
→ Ссылка
Автор решения: S. Nick

Если я правильно понял вашу задачу по загрузке *.csv файлов, то вам лучше использовать QTableWidget и pandas. Попробуйте.

import sys
#import csv                                                                            # ---
import pandas as pd                                                                    # !!! + pandas

from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.Qt import *


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(400, 350)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        
#        self.listWidget = QtWidgets.QListWidget(self.centralwidget)                   # --- 
        self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)                  # !!! QTableWidget
        self.tableWidget.setObjectName("tableWidget")
        self.verticalLayout.addWidget(self.tableWidget)
        
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 374, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))


class TEST(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(TEST, self).__init__()
        
        self.setupUi(self)
        
# ???        assert isinstance(self.pushButton, object)
        self.pushButton.clicked.connect(self.select_file)

    def select_file(self):
        self.f_name = QtWidgets.QFileDialog.getOpenFileName(
            self.tableWidget, 'Open CSV', '.', 'CSV(*.csv)'                             # !!! 'CSV(*.csv)'
        )[0]
        
        if not self.f_name:
            return

        self.all_data = pd.read_csv(self.f_name)
      
        numColomn = 0 
        if numColomn == 0:
            NumRows = len(self.all_data.index)
        else:
            NumRows = numColomn
        
        self.tableWidget.setColumnCount(len(self.all_data.columns))
        self.tableWidget.setRowCount(NumRows)
        self.tableWidget.setHorizontalHeaderLabels(self.all_data.columns)        

        for i in range(NumRows):
            for j in range(len(self.all_data.columns)):
                self.tableWidget.setItem(i, j, QtWidgets.QTableWidgetItem(str(self.all_data.iat[i, j])))

        self.tableWidget.resizeColumnsToContents()
        self.tableWidget.resizeRowsToContents()
              
                
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ui = TEST()
    ui.show()
# ???     app.exec_()
    sys.exit(app.exec_())

test_1.csv

,row_min,row_max,detector_min,detector_max
Row 1,1,2,3,4
Row 2,5,6,7,8
Row 3,9,10,11,12

введите сюда описание изображения

test_2.csv

HELLO
1
2
3
4
5

введите сюда описание изображения

→ Ссылка