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


181

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

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

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

답변:


319

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

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

편집하다

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

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

관련 질문 :


10
그러나 lstrip 은 공백보다 많은 선행 공백 을 제거하는 동안 탭 (탭 등)입니다. 그것은 보통 당신이 원하는 것입니다. 공백과 공백 만 제거하려면 "bla".lstrip ( "")
balpha

1
@ balpha : 지적 해 주셔서 감사합니다! 나는 그것을 대답에 추가했습니다.
coobird

3
몇 년 동안 프로그래밍을 해왔으며 이것을 알지 못했습니다. 생명의 은인
Chris Hawkes

3
새로운 파이썬 프로그래머에게는 파이썬의 문자열이 변경 불가능하다는 점에 주목하는 것이 유용 할 수 있으므로 문자열 'string_a'로 작업하는 경우 string_a.lstrip ()이 문자열 자체를 변경한다고 생각할 수도 있지만 실제로는 string_a.lstrip () 값을 자체 또는 새 변수 (예 : "string_a = string_a.lstrip ()")에 할당해야합니다.
필드

2
참고 : lstrip ()이 있으므로 strip () 및 rstrip ()도 있습니다
Alexander Stohr

87

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

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

로 설정 my_str됩니다 "text".


18

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

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

이것은 중간 공간으로 그대로 인쇄 한다는 점에 주목할 가치 있습니다. 'Hello World'궁금한 사람은 원래 질문이 선행 공백 을 제거하도록 요청했기 때문에 투표가 거부 된 것 같습니다 .
conapart3

2
docs.python.org/3/whatsnew/3.0.html 인쇄가 함수 print 문이 print () 함수로 대체되었으며 키워드 인수를 사용하여 이전 print 문의 특수 구문 대부분을 대체합니다 (PEP 3105).
mbrandeis

@mbrandeis 그 진술은 여기서 어떻게 관련이 있습니까?
MilkyWay90

12

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

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

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


3
나는 그 사람이 "가장 쉽고 간단한 방법"을 요청했다고 생각합니다.
Nope

10
사실, 그러나 그는 (아마도 우연히도) 더 일반적인 문제에 대한 해결책을 요구했다. "즉, 특정 문자 앞에있는 모든 것을 제거 하는가?"그리고 이것이보다 일반적인 해결책입니다.
cjs

1

이 질문은 여러 줄 문자열을 다루지 않지만 다음은 파이썬의 표준 라이브러리 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.