Python CSV 编写器用额外的空格引用字符串

标签 python csv

我的数据看起来像这样:

data = [
  [" trailing space", 19, 100],
  [" ", 19, 100],
]

writer = csv.writer(csv_filename, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

输出

 trailing space,19,100
 ,19,100

我想要什么

" trailing space",19,100
" ",19,100

Python 默认 CSV 编写器可以选择“QUOTE_MINIMAL”,但它不包括引用带有额外空格的字符串。就我而言,这些空白实际上很关键,但如果不引用,读者(如 libre-office)就会删除未引用的空格。

是否有任何内置选项或快速廉价的方法来告诉作者用空格引用空字符串?

此外,“QUOTE_NONNUMERIC”引用太多。实际数据很大(几百兆字节,其中 60% - 70% 是字符串)。这可能听起来很愚蠢,但我正在尝试通过最小化引号来减小 csv 大小。

最佳答案

这有点像黑客,但实现这一目标的一种方法可能是

df.to_csv(quoting=csv.QUOTE_MINIMAL, escapechar=' ')

这不是文档,但 QUOTE_MINIMAL 似乎引用了包含 escapechar 的字段,尽管它没有任何效果(因为 quoting 不是 NONE双引号 默认为 True)

关于Python CSV 编写器用额外的空格引用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733181/

相关文章:

python - 根据值对python中的元组进行排序

python - NumPy 的 transpose() 方法如何置换数组的轴?

mySQL TSV infile 重复条目

MySQL load data infile 恰好加载一半的记录

python - 如何在 Sikuli 中使用 Python OpenCV 函数

python - 如何提取字符串中与关键字列表中的某个单词匹配的单词

python - 如何使用CSRF token进行跨域Ajax调用?

python - 无法将稀疏矩阵写入 csv

python - 从 csv 文件 Python 中的位置列表中查找最近的位置

ruby-on-rails - Rails CSV 导入 first_or_create