使用“,”将包含字符串的分号写入 CSV,因为分隔符仍然会导致 CSV 文件中的分隔

Posted

技术标签:

【中文标题】使用“,”将包含字符串的分号写入 CSV,因为分隔符仍然会导致 CSV 文件中的分隔【英文标题】:Writing a Semicolon containing String to CSV with "," as Delimiter still causes Separation in CSV-File 【发布时间】:2021-01-17 08:49:25 【问题描述】:

我想将包含字符串的分号写入 CSV。

这就是我所拥有的:

name = ["Peter;Parker"]
 
file = open("Test.csv", "a", newline='')
writer = csv.writer(file, delimiter=',')
writer.writerow(name)

所以问题是,我想要第 1 列中的完整字符串名称,但实际上分号将前后部分拆分为第 1 列和第 2 列

【问题讨论】:

您是否在电子表格中看到了这种行为?一些电子表格应用程序会尝试各种列分隔符,有时可以在文件打开时进行配置。 @snakecharmerb 在电子表格中是的,所以您是说问题不在 Python 输出端,而是在 csv 文件程序本身? 是的,可能。您的文件似乎是单列 csv,因此如果电子表格程序在列内找到潜在的分隔符,它会假定它是列分隔符。这可以在导入对话框中进行配置。例如,这是 libreoffice calc 的导入对话框:imgur.com/a/7zvvTK7 【参考方案1】:

所以@snakecharmerb 的评论是正确的。 就我而言,我试图用 Excel 打开 csv 文件,而 Excel 将分号作为默认分隔符。

您可以通过记事本编辑文件来检查原始文本是否正确,而不是双击 csv 文件来打开 Excel。 如果你想用 Excel 打开它,你需要加载一个空的 excel 文件并转到数据并从文本导入。现在加载 csv 文件,系统会询问您要使用哪个分隔符,不,您可以取消选择分号并选择 none 或 just ,

【讨论】:

以上是关于使用“,”将包含字符串的分号写入 CSV,因为分隔符仍然会导致 CSV 文件中的分隔的主要内容,如果未能解决你的问题,请参考以下文章

iOS-解析读取CSV文件,解析excel文件

使用 soffice 命令行将 xls 转换为分号分隔的 csv

C++:使用 fgetc 读取 csv 文件,并用分号“;”分隔单词

如何以编程方式猜测 CSV 文件是逗号还是分号分隔

将字符串写入 CSV 时转义逗号

如何修改excel转换csv的分隔符