You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5通过Line Edit控件向CSV文件追加数据时格式异常的解决方法

解决PyQt5写入CSV格式异常的问题

Hey there, let's sort out that wonky CSV formatting issue you're running into!

问题根源

你当前的代码里,手动把逗号(,)作为列表的一个元素传给了writerow()方法,但**csv.writer本身会自动用默认分隔符(逗号)来分隔列表中的每个元素**。这就导致CSV文件里出现了多余的",",字符串——相当于你强制插入了一个带引号的逗号元素,而不是让CSV工具自动处理列分隔。

修复后的代码

把你现有的addRecord方法改成这样:

def addRecord(self):
    # 不要用list作为变量名,它是Python内置类型,避免冲突
    record_data = [self.lineEdit.text(), self.lineEdit_3.text()]
    with open('player_highscore.csv','a') as f_object:
        writer_object = writer(f_object)
        writer_object.writerow(record_data)
        # with语句会自动关闭文件,不需要手动调用close()

为什么这样有效?

  • 当你把只包含两个输入值的列表传给writerow()时,csv.writer会自动在两个值之间插入逗号,同时处理任何需要转义的特殊字符(如果有的话)。
  • with上下文管理器会在代码块结束后自动关闭文件,所以原来的f_object.close()完全是多余的,可以删掉。

验证结果

现在在两个Line Edit中都输入1,点击两次「添加记录」按钮后,你的player_highscore.csv内容就会变成:

LVL,Highscore
10,979161
1,1
1,1

完美符合你的期望结果!

内容的提问来源于stack exchange,提问作者rocketlauncheryay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:08:09