这是我当前的CSV文件:
BookId,BookTitle,Author ,Price(£),Subject,NoofCopies
1,Sherlock Holmes, Arthur Conan Doyle, 10.00, Crime, 3
2,The Computing Book, Robert, 2.00, Computing, 9
3,Another Book,Steeve, 4.50, Action, 1
如果我使用此代码读取csv文件:
def readbookcsv():
database = []
filename = "csvbooks.csv"
with open(filename, 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
database.append(row)
return database
我得到了一个包含其他列表的列表,我在代码的其余部分使用这些列表来添加或更改这些列表中的数据:
"['BookId', 'BookTitle', 'Author ', 'Price(£)', 'Subject', 'NoofCopies']","['1', 'Sherlock Holmes', ' Arthur Conan Doyle', ' 10.00', ' Crime', ' 3']","['2', 'The Computing Book', ' Robert', ' 2.00', ' Computing', ' 9']","['3', 'Another Book', 'Steeve', ' 4.50', ' Action', ' 1']"
然而,当试图覆盖保存文件时,我总是将文件全部清除,将上面的列表附加到单个单元格,或仅用列表覆盖csv,有没有办法将此列表更改回csv文件的格式,然后保存它
正在保存:
with open('csvbooks.csv', 'wt') as f:
wtr = csv.writer(f)
wtr.writerow(booklist)
with open('csvbooks.csv', 'at') as f:
writer = csv.writer(f, lineterminator = '\n')
writer.writerow(booklist)
要将列表列表(实际行)转换为csv格式,可以使用以下函数:
listToRow方法将“row list”作为参数,连接列表项并在它们之间添加分隔符(第二个参数)。默认情况下,我只是使用','就像你的例子
listToString方法将列表列表作为一个参数,将它们串联起来并添加换行符('\n'),这样每一行都会有一个额外的行
最后,您可以使用以下函数将字符串附加到实际的csv文件中
不能将整个列表提供给
writerow()
方法。 使用writerows()
方法编写整个列表 立刻:或者,您可以逐行写入:
现在
csvbooks_out.csv
的格式与您的输入文件相同相关问题 更多 >
编程相关推荐