gpt4 book ai didi

python - 如何将用户输入放入 CSV 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:01 24 4
gpt4 key购买 nike

我的问题有很多排列组合,但最接近的答案是:

How do I write a Python dictionary to a csv file?

不幸的是,每一行的打印输出都是这样的:

matthew, green
rachel, blue
raymond, red

其中 somedict = dict(raymond = "red", rachel = "blue", matthew = "green")

我的问题需要更像这样的输出:

why, date, story
"because", "sunday", "blah blah blah"

我从用户输入中获取字典,重要的是输出文件将每个新答案(为什么、日期和故事)放在一个新行上(此外,列标题只打印一次)。所以我的代码看起来像这样:

import csv
o = "file.csv"
why = input("Why? ")
date = input("Date: ")
story = input("Story: ")

总而言之,我需要如下所示的输出:

why, date, story
"because", "sunday", "blah blah blah"
"i don't know", "monday", "blah blah blue"
"third base", "monday", "blah blah blarg"

我只是在寻找一种简单的方法来获取用户输入,并将其写入 csv 文件中的新行。我已经在这里待了大约两个小时,所以这就是我来这里的原因。首先,我得到了两个 TypeError 错误:(1) 'str' 不支持缓冲区接口(interface)(我通过将“utf-8”参数添加到 with open(file, “wb”, “utf-8”) 语句来解决这个问题). (2) TypeError:需要一个整数。出于某种原因,我从“wb”中去掉了“b”,它似乎摆脱了这个错误。我发布的链接几乎可以让我到达我需要去的地方,但还不够,我真诚地感谢任何人可以提供的任何快速说明。

编辑

明确地说,我尝试了几种可能性。最有希望的是:

with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerows(somedict.items())

它产生了我上面引用的第一个输出,这不是我需要的。

我也试过:

with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerow(somedict.keys())
w.writerow(somedict.values())

但这给了我:_csv.Error: sequence expected

最佳答案

如果您只想获取用户输入并将其写入 csv 文件中的新行,则无需字典即可完成。在字典中执行此操作实际上取决于字典的设置方式 - 如果您对此进行更多解释,可能会有所帮助?如果这是我想象的方式,那么 kalgasnik 的回答很好。

但是如果不需要字典(我对你的问题的一般印象),这种方式非常简单:

import csv
with open('file.csv', 'w') as f:
w = csv.writer(f, quoting=csv.QUOTE_ALL)

while (1):
why = input("why? ")
date = input("date: ")
story = input("story: ")
w.writerow([why, date, story])

它直接根据用户输入生成您想要的输出。

编辑

这种方式专为您只是一遍又一遍地接收数据的情况而设计,因此 while (1) (永远循环)。如果您想一次接受一个集合,请完全删除 while 循环 - 这与在最后添加一个中断具有相同的效果。

如果你想在每次写入之间打开和关闭文件(例如,如果你将在两者之间做很多其他工作),那么在打开文件时使用'a'而不是'w'来追加,这将在新行上写入每组新字符串。

这可能是一个例子,说明在最后将它们全部写入文件之前将所有集合存储在某个地方可能是个好主意,因为一直打开和关闭文件可能会很昂贵(我不知道这是否是您的考虑因素)。如果您仍然不习惯使用字典,您可以简单地将每个 [why, date, story] ​​列表添加到一个更大的列表中,然后在最后编写时在列表的末尾循环。

关于python - 如何将用户输入放入 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12648717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com