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
相关产品推荐
相关产品推荐

