如何在Python中使用内置字符串方法去除文本中的空白?

2024-09-29 10:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在输入文件中有一些文本。通过删除文本中出现的空白来清除文本。示例文本如下所示:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis purus nec aliquam placerat. Donec efficitur ex vel ante mattis fermentum. Fusce consequat placerat lectus a volutpat. Nulla vitae feugiat ex. Ut at sollicitudin felis. Curabitur efficitur ligula molestie lorem sagittis, eu blandit mi sagittis. Duis scelerisque blandit porta. In vel nunc quam. Phasellus aliquet nunc et nibh ullamcorper, at ullamcorper odio cursus. Suspendisse gravida erat ac urna luctus, nec fermentum nulla tincidunt. Etiam sollicitudin bibendum tristique. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas auctor nulla eu faucibus maximus.

可以使用Python标准库的哪些内置字符串方法来代替编写新方法来去除上述示例文本中的空白字符

我正在使用Python 3.6


Tags: 文本示例空白atexneceuvel
3条回答
  • 可以使用strip方法删除尾随空格
  • 可以使用replace方法删除所有空格(或其他字符)
  • 您可以使用splitjoin删除所有空格。
    • split方法将字符串拆分为列表。 您可以指定分隔符,默认分隔符为任何空格
    • join方法获取一个iterable中的所有项,并将它们连接成一个字符串
  • 您可以使用translate和内置的string模块删除所有空白

代码:

import string

input_text = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Cras mattis purus nec aliquam placerat. 
Donec efficitur ex vel ante mattis fermentum."""

print("ORIGINAL:\n{}".format(input_text))
print("\nWITHOUT TRAILING WHITESPACES:\n{}".format(input_text.strip()))
print("\nWITHOUT SPACES:\n{}".format(input_text.replace(" ", "")))
print("\nWITHOUT ANY WHITESPACES:\n{}".format("".join(input_text.split())))
# It works only in Python3
print(
    "\nWITHOUT ANY WHITESPACES:\n{}".format(
        input_text.translate(str.maketrans("", "", string.whitespace))
    )
)

输出:

>>> python3 test.py 
ORIGINAL:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Cras mattis purus nec aliquam placerat. 
Donec efficitur ex vel ante mattis fermentum.

WITHOUT TRAILING WHITESPACES:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Cras mattis purus nec aliquam placerat. 
Donec efficitur ex vel ante mattis fermentum.

WITHOUT SPACES:

Loremipsumdolorsitamet,consecteturadipiscingelit.
Crasmattispurusnecaliquamplacerat.
Donecefficiturexvelantemattisfermentum.

WITHOUT ANY WHITESPACES:
Loremipsumdolorsitamet,consecteturadipiscingelit.Crasmattispurusnecaliquamplacerat.Donecefficiturexvelantemattisfermentum.

WITHOUT ANY WHITESPACES:
Loremipsumdolorsitamet,consecteturadipiscingelit.Crasmattispurusnecaliquamplacerat.Donecefficiturexvelantemattisfermentum.

尝试替换空白

string.replace(' ','')

如果只想删除前导和尾随空格,可以使用准确命名的^{} function

如果要删除所有空格,可以使用^{} function将空格(" ")替换为空字符串(""

如果需要删除空格以外的空白(例如制表符、换行符),可以使用^{} functionr'\s'的正则表达式。然而,这可以说不是你的问题所要求的“字符串函数”(取决于你的意思)

相关问题 更多 >