gpt4 book ai didi

python - 使用 shlex 保留连续的空格

转载 作者:行者123 更新时间:2023-12-01 05:40:41 25 4
gpt4 key购买 nike

我正在使用 shlex 解析 csv 文件,并且需要保留连续的空白字符,如下所示...

line = 'a, b, "c, z",,,d,e,f'
spltr = shlex.shlex(line)
spltr.whitespace += ','
parts = list(spltr)
print parts

当我真正想要 [' 时,它会返回 ['a', 'b', '"c, z"', 'd', 'e', 'f'] a'、'b'、'"c、z"'、''、''、'd'、'e'、'f']。我如何告诉 shlex 保留这些连续的空白字符而不是删除它们?

最佳答案

这不适用于 shlex,在命令行上,空白字符的数量不相关。

spltr.whitespace += ','

一个或多个空白之间没有区别,它们被作为单个项目进行处理。

这是一个可行的解决方案:

  • 请将您的输入文件分割成行 block
  • 如果您愿意,可以将您的 block 发送到另一个进程
  • 使用StringIO,这样你就可以在每个 block 上拥有文件语义
  • 使用csv模块

工作示例:

>>> import csv
>>> import StringIO
>>>
>>> line = 'a, b, "c, z",,,d,e,f'
>>> file_like = StringIO.StringIO(line)
>>>
>>> csvreader = csv.reader(file_like, delimiter=',', quotechar='"', skipinitialspace=True)
>>> list(csvreader)
[['a', 'b', 'c, z', '', '', 'd', 'e', 'f']]

关于python - 使用 shlex 保留连续的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com