【问题标题】:Python write to csv with comas in each fieldPython 在每个字段中使用逗号写入 csv
【发布时间】:2019-06-19 12:35:51
【问题描述】:

我正在尝试使用逗号作为分隔符将字符串列表导出到 csv。每个字段可能包含一个逗号。写入 csv 文件后,我得到的是每个逗号都被视为分隔符。

我的问题是:是否可以忽略每个字段中的逗号(作为分隔符)?

这是我正在尝试的示例。

import csv

outFile = "output.csv"
f = open(outFile, "w")

row = ['hello, world' , '43333' , '44141']

with open(outFile, 'w') as writeFile:
    writer = csv.writer(writeFile)
    writer.writerow(row)

writeFile.close()

输出如下所示:outputObtained

我想要的是这样的:outputExpected

我认为解决此问题的一种方法是使用不同的分隔符,正如我在某些网站上看到的那样。但我的问题是,是否有办法使用逗号 (',') 分隔符来解决这个问题。

谢谢

【问题讨论】:

  • “是否有办法使用逗号 (',') 分隔符来解决这个问题”我非常怀疑这一点。解析软件怎么知道逗号是哪个?
  • 有什么你需要的图案吗?比如连续遇到的第一个逗号等。
  • @DeepSpace:事实上的标准是允许在用双引号括起来的值中使用逗号。
  • csv 正确地在 "hello, world" 周围加上引号以保留嵌入的逗号。问题在于读取 csv 文件以在图像中生成电子表格的过程,您没有向我们展示。
  • 你只需要告诉 Calc/Excel 你的引用字符是一个 "

标签: python export-to-csv


【解决方案1】:

您只需要告诉 Calc/Excel 您的引用字符是“”

【讨论】:

    【解决方案2】:

    我相信您可以尝试将包含非定界逗号的字段用双引号括起来。如果这不起作用,您可能没有选择。毕竟,您需要以某种方式向正在为您或用户进行 CSV 显示的软件传达有关哪个逗号正在做什么的信息。

    也许这会有所帮助:

    https://www.rfc-editor.org/rfc/rfc4180#page-3

    1. 包含换行符 (CRLF)、双引号和逗号的字段 应该用双引号括起来。例如:

      "aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxx

    【讨论】:

      【解决方案3】:

      您可以使用 .replace(',','') 将文本中的逗号替换为空格(或其他任何您想要的内容。

      我不知道如何在文本中保留逗号,但不能让它充当分隔符,比如 \,也许吧?其他人可能会对此有所了解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-02
        • 2022-01-26
        • 1970-01-01
        • 2014-04-25
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        • 2012-11-17
        相关资源
        最近更新 更多