【问题标题】:My code isn't writing to a new line in the csv file but is rather writing on the same line next to it我的代码没有写入 csv 文件中的新行,而是写入它旁边的同一行
【发布时间】:2017-11-28 15:51:21
【问题描述】:
import csv 
with open ('database1.csv', 'a', newline='') as csvfile:
    linetowrite = username + "," + password + "," + dob + "," +\
                  favartist + "," + favgenre
    csvfile.write(linetowrite)
csvfile.close()

这是我的代码,所有输入都正常,但似乎有问题,您能帮帮我吗?

【问题讨论】:

  • 您最后不需要csvfile.close(),因为您使用的是with 块...
  • 嗨,欢迎来到 Stack Overflow。请阅读how to ask 文章并相应地修改您的问题。您没有提供您期望的输出示例,只是要求我们调试您的代码。这不是 Stack Overflow 的用途,我们在这里帮助解决您面临的特定问题,而不是提供一般调试或指导。
  • 还有人知道如何覆盖文件中的输入吗?
  • @Pythonneeds 正如我在下面所说的,您能否让这个问题更清楚,并通过编辑将其包含在您的原始问题中。例如,您可能想问“我怎样才能覆盖现有的行?”,这也会提出如何找到要覆盖的行的问题。

标签: python csv writer


【解决方案1】:

csvfile.write(linetowrite) 更改为csvfile.write(linetowrite + "\n")。这会添加一个换行符。

【讨论】:

  • 虽然这个技巧有效,但它并没有完全利用一开始导入的非常有用的csv 模块......
【解决方案2】:

您正在导入 csv 模块,但从未真正使用它。为此,您需要像这样创建csv.writer

import csv

with open('database1.csv', 'w', newline='') as csvfile:
    csvfilewriter = csv.writer(csvfile)
    csvfilewriter.writerow([username, password, dob, favartist, favgenre])

【讨论】:

    猜你喜欢
    • 2014-07-21
    • 2014-12-28
    • 1970-01-01
    • 2016-05-09
    • 2017-05-04
    • 2014-05-10
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多