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

Suf*_*ndy 2 python csv

我的数据看起来像这样:

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

writer = csv.writer(csv_filename, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
Run Code Online (Sandbox Code Playgroud)

输出

 trailing space,19,100
 ,19,100
Run Code Online (Sandbox Code Playgroud)

我想要的是

" trailing space",19,100
" ",19,100
Run Code Online (Sandbox Code Playgroud)

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

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

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

ldo*_*oso 5

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

df.to_csv(quoting=csv.QUOTE_MINIMAL, escapechar=' ')
Run Code Online (Sandbox Code Playgroud)

它不是文档,但QUOTE_MINIMAL似乎引用包含的字段,escapechar尽管它没有效果(默认情况下quoting不是)NONEdoublequoteTrue