我正在做一个自定义键盘。我使用.csv文件来存储各个键绑定。它的csv格式如下所示:
1,2,3,4,5
q,w,e,r,t
a,s,d,f,g
z,x,c,v,b
6,7,8,9,0
y,u,i,o,p
现在,我有一个函数读取文件并将其放入列表中:
import csv
bMap = []
# initial fillout of bMap
f = open('bMap.csv', 'r')
contents = csv.reader(f, delimiter=',', quotechar='|')
for row in contents:
bMap.append(row)
f.close()
print(bMap)
这是我的输出:
[['1', 'y', '3', '4', '5'], ['q', 'w', 'e', 'r', 't'], ['a', 's', 'd', 'f', 'g'], ['z', 'x', 'c', 'v', 'b'], ['6', '7', '8', '9', '0'], ['y', 'u', 'i', 'o', 'p']]
到目前为止,一切顺利。现在假设用户将'2'的绑定更改为'x'
bMap[0][1] = 'y'
print(bMap)
当然,输出与列表时间相同,但用'x'代替'2'。
现在我希望它将更改保存到前面提到的.csv文件中。我正在使用以下函数:
f = open('bMap.csv', 'w')
writer = csv.writer(f, delimiter=',', quotechar='|')
writer.writerows(bMap)
f.close()
现在,当我打开csv文件时,它看起来如下:
1,y,3,4,5
q,w,e,r,t
a,s,d,f,g
z,x,c,v,b
6,7,8,9,0
y,u,i,o,p
由于某种原因,我有这些空行。现在,如果我再次运行代码,它将无法正常工作。我怎样才能摆脱它们呢?为什么要写这些呢?
解决你的问题很简单。请相应地修改这一行。
f = open('bMap.csv', 'w', newline='')
更多信息,请查看下面的链接。
使用Python读取csv时指定换行字符('n')