在Python中删除csv文件中的前导和尾随空格

时间:2016-12-14 20:38:05

标签: python regex string csv

定义:

str = " a , b,c, hello there ! , my name is +++ , g "

如何删除前导和尾随空格以便输出:

"a,b,c,hello there !,my name is +++,g"

即。输出使得逗号分隔值字符串中的值之间没有前导或尾随空格。

我开始阅读正则表达式?这是否适合使用?我将如何完成任务?

3 个答案:

答案 0 :(得分:4)

您可以像这样使用split()strip()join()

','.join([w.strip() for w in my_string.split(',')])

<强>输出:

>>> my_string = '[ a  , b,c, hello there !   ,   my name is +++ ,  g ]'
>>> ','.join([w.strip() for w in my_string.split(',')])
'[ a,b,c,hello there !,my name is +++,g ]'

<强>解释

split()用于通过分隔符my_string拆分,,结果如下:

>>> my_string.split(',')
['[ a  ', ' b', 'c', ' hello there !   ', '   my name is +++ ', '  g ]']

strip()用于删除上一个列表中每个单词周围的空格:

>>> [w.strip() for w in my_string.split(',')]
['[ a', 'b', 'c', 'hello there !', 'my name is +++', 'g ]']

上述行称为list comprehension

join()用于通过连接上面列表中的单词来形成最后一个结果。

答案 1 :(得分:0)

您可以使用strip功能

string = '     blah blah   '
print string.strip() # =>'blah blah'

答案 2 :(得分:0)

您可以使用正则表达式'\s*,\s*'将匹配的内容替换为,。例如:

>>> import re
>>> my_str = "[ a  , b,c, hello there !   ,   my name is +++ ,  g ]"

>>> re.sub('\s*,\s*', ',', my_str)
'[ a,b,c,hello there !,my name is +++,g ]'