回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这是我当前的CSV文件:</p>
<pre><code>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
</code></pre>
<p>如果我使用此代码读取csv文件:</p>
<pre><code>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
</code></pre>
<p>我得到了一个包含其他列表的列表,我在代码的其余部分使用这些列表来添加或更改这些列表中的数据:</p>
<pre><code>"['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']"
</code></pre>
<p>然而,当试图覆盖保存文件时,我总是将文件全部清除,将上面的列表附加到单个单元格,或仅用列表覆盖csv,有没有办法将此列表更改回csv文件的格式,然后保存它</p>
<p>正在保存:</p>
<pre><code> 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)
</code></pre>