最优雅的方式摆脱白色空间和新线条?

问题描述 投票:0回答:2

我正在编写一个脚本来解析每个outlook电子邮件中的特定数据。

在解析它之前,我写了一些东西去除掉我的字符串中的所有回车符,新空格和空格,但它非常难看。有什么想让它更优雅吗?

messageStr = messageStr.replace("\r","")
messageStr = messageStr.split('\n')
messageStr = [i for i in messageStr if i != '']
messageStr = [i for i in messageStr if i != ' ']
python whitespace
2个回答
1
投票

.strip字符串方法删除前导和尾随空格。如果你想摆脱每一行和其他前导/尾随空格的回车,你可以这样做

lines = [line.strip() for line in message.split('\n')]

如果要删除所有空格,而不仅仅是前导/尾随,则可以针对包含要过滤的所有空格的字符串执行类似操作。 string模块有一个帮手。以下将从字符串s中删除所有空格:

import string
filtered_string = ''.join(char for char in s if char not in string.whitespace)

1
投票

此任务与数据清理任务有关,这是我的方法:

将所有符号放在列表中,然后检查列表中是否有符号然后将其删除。

dummy_string='Hello this is \n example \r to remove '' the special symbols ' ''
special_sym=['\r','\n','',' ']


[dummy_string.split().__delitem__(j) for j,i in enumerate(dummy_string.split()) if i in special_sym]

print(" ".join(dummy_string.split()))

输出:

Hello this is example to remove the special symbols

P.S:你不需要在special_sym列表中使用'\r''\n',因为当你做split()时它会自动删除那些,但我仍然只是举例说明。

© www.soinside.com 2019 - 2024. All rights reserved.