簡體   English   中英

如何使用 Python 中的內置字符串方法去除文本中的空格?

[英]How to strip whitespace in text using built-in string methods in Python?

我在輸入文件中有一些文本。 通過刪除其中出現的空格來清理文本。 示例文本如下所示:

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

可以使用 Python 標准庫的哪些內置字符串方法來代替編寫新方法來去除上述示例文本中的空白字符?

我正在使用 Python 3.6

如果您只想刪除前導和尾隨空格,可以使用准確命名的strip function

如果要刪除所有空格,可以使用replace function將空格( " " )替換為空字符串( "" )。

如果您需要刪除空格以外的空格(例如制表符、換行符),您可以使用re.sub functionr'\s'的正則表達式來完成。 但是,這可以說不是您的問題要求的“字符串函數”(取決於您的意思)。

  • 您可以使用strip方法刪除尾隨空格。
  • 您可以使用replace方法刪除所有空格(或其他字符)。
  • 您可以使用splitjoin刪除所有空格。
    • split方法將一個字符串拆分為一個列表。 您可以指定分隔符,默認分隔符是任何空格。
    • join方法獲取一個可迭代對象中的所有項目並將它們連接成一個字符串。
  • 您可以使用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))
    )
)

Output:

>>> 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(' ','')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM