【问题标题】:How do I write a variable that includes multiple values and commas to a csv file?如何将包含多个值和逗号的变量写入 csv 文件?
【发布时间】:2015-05-21 09:23:03
【问题描述】:

如何将包含多个值和逗号的变量写入 CSV 文件? 例如,变量可能包含jimmy,5,250,james,我想将其写入 CSV 文件,然后开始一个新行并以相同的方式再次在循环中写入下一批变量。

outFile = open('outputfile.csv','w') csvFile_out = csv.writer(outFile, delimiter=',') csvFile_out.writerows(valuesvariable)

【问题讨论】:

  • 使用 SSV:分号分隔值。 ;) 或者,在写作时用其他东西替换逗号,然后在阅读时将它们放回去。
  • 变量你有字符串吗?如果是这样 - 只需将其写成一行...
  • 确实没有标准的csv格式。这意味着没有标准的方法可以做到这一点。我会选择 SSV,或者用连字符封装变量,允许某些解析器将它们视为字符串

标签: python csv


【解决方案1】:

假设您的数据看起来像这样(我假设这是您想要处理的数据类型,因为您提到了多个值):

data = [
    ("jimmy", 5, 250, "james",)
    ("bobby", 7, 270, "mark",)
]

您可以简单地在一个简单的“for 循环”中遍历数据并在每一行中写入“逗号分隔”值:

with open("data.csv", "w") as f:
    for values in data:
        f.write("{0:s}\n".format(",".join(map(str, values))))

或者(推荐)您可以使用 Python csv 模块;特别是像这样的csv.writer 类:

import csv

with open("data.csv", "wb") as fd:
    csvfile = csv.writer(fd)

    for values in data:
        csvfile.writerow(values)

您当然可以使用csv.writer.writerows() 来缩短它:

import csv

with open("data.csv", "wb") as fd:
    csvfile = csv.writer(fd)
    csvfile.writerows(data)

【讨论】:

  • 我使用了这个,输出沿着 csv 文件的对角线向下。当我打印变量时它很好,但是当我去打印它时,它失败了
  • “当我去打印它时;它很好,但是当我打印它时它失败了”。这对我来说毫无意义。
  • @user2736517 你真的有一个字符串或其他序列,如列表/元组吗?如果您在原始帖子中展示了您是如何获取/设置变量的,这将有所帮助-请免费发送至edit您的问题以澄清您被问到的 cmets-我们正在努力提供帮助-如果我们不这样做'没有足够的信息供我们请求您提供 - 我们不能。
  • 对不起,伙计,有一个错字。我的意思是当我要编写它失败的变量时,我怎样才能在这里发布我的代码?
  • 'code' outFile = open('outputfile.csv','w') csvFile_out = csv.writer(outFile, delimiter=',') csvFile_out.writerows(valuesvariable) 'code'跨度>
【解决方案2】:

对于一个包含多个值的变量,我会使用一个数组并使用 foreach 循环或类似的东西循环遍历它。这样一来,无论标点符号如何,每个值都保持正确分隔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2021-12-28
    • 2018-03-20
    • 1970-01-01
    • 2021-02-08
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多