[python] 파이썬에서 선행 공백을 어떻게 제거합니까?

2와 4 사이의 다양한 공백으로 시작하는 텍스트 문자열이 있습니다.

선행 공백을 제거하는 가장 간단한 방법은 무엇입니까? (즉, 특정 문자 전에 모든 것을 제거 하시겠습니까?)

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"



답변

lstrip()방법은 문자열 시작 부분에서 선행 공백, 줄 바꿈 및 탭 문자를 제거합니다.

>>> '     hello world!'.lstrip()
'hello world!'

편집하다

주석에서 지적했듯이 문자열의 시작 부분에서 공백 제거하려면 다음을 lstrip(' ')사용해야합니다.

>>> '   hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'

관련 질문 :


답변

이 함수 strip는 문자열의 시작과 끝에서 공백을 제거합니다.

my_str = "   text "
my_str = my_str.strip()

로 설정 my_str됩니다 "text".


답변

단어 앞뒤에 공백을 자르고 싶지만 가운데 공백은 유지하십시오.
당신은 사용할 수 있습니다 :

word = '  Hello World  '
stripped = word.strip()
print(stripped)


답변

특정 문자 앞에있는 모든 것을 제거하려면 정규식을 사용하십시오.

re.sub(r'^[^a]*', '')

첫 번째 ‘a’까지 모든 것을 제거합니다. [^a]단어 문자와 같이 원하는 문자 클래스로 대체 할 수 있습니다.


답변

이 질문은 여러 줄 문자열을 다루지 않지만 다음은 파이썬의 표준 라이브러리 textwrap 모듈을 사용하여 여러 줄 문자열에서 선행 공백을 제거하는 방법 입니다. 우리가 다음과 같은 문자열을 가지고 있다면 :

s = """
    line 1 has 4 leading spaces
    line 2 has 4 leading spaces
    line 3 has 4 leading spaces
"""

우리 print(s)가 다음과 같은 출력을 얻는 다면 :

>>> print(s)
    this has 4 leading spaces 1
    this has 4 leading spaces 2
    this has 4 leading spaces 3

그리고 우리가 사용한 경우 textwrap.dedent:

>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3


답변