선행 및 후행 공백을 제거 하시겠습니까?


109

다음 코드 줄에서 .strip을 사용하는 데 어려움을 겪고 있습니다.

도와 주셔서 감사합니다.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

3
라인이란? 예가 좋거나 우리는 추측하고 있습니다.
jamylak

f.write (str (re.split ( "기술 ID : | 이름 : | 계정 번호 :", line) [-1]). strip)
fpena06

1
코드에서 당신은 당신이 스트립 후 paranthesis 잊어 버린 것 같습니다 게시
jamylak

뒤에 함수 호출 괄호를 놓쳤습니다 strip. 원하는 항목 : f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
: 왜 당신은 당신의 정규 표현식에 공백을 추가하지 않는 re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*
게오르그

답변:


235

strip ()을 사용하여 후행 및 선행 공백을 제거 할 수 있습니다.

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

참고 : 내부 공간은 보존됩니다.


31
목표라면 s.strip ()의 출력을 s에 다시 할당하는 것을 잊지 마십시오. s = s.strip ()
Seanonymous

@GregSchmit 어떻게 누군가 그것을 놓칠 수 있습니까? 좋아요 78 개인데 아무도 눈치 채지 못 했나요? 이상한.
MYGz

@MYGz 그래, 나는 내가 뭔가를 놓쳤을지도 모른다고 생각하면서 나 자신에게도 의문을 품고 있었다.
Greg Schmit

2
@GregSchmit 분명히 89294 개의 눈이 그것을 스캔했습니다. P : 당신은 1 날카로운 쌍 있어요
MYGz

분명히 내가 뭔가 잘못하고 있지만 그게 뭔지 모르겠다. 문자열에서 strip ()을 실행하면 문자열이 아닌 문자열 목록이 반환됩니다.
user1928764

5

하나의 라이너를 여러 줄로 확장하십시오. 그러면 쉬워집니다.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)

3

주목해야한다 strip()(더가 전달 된 경우 인수) 메서드는 문자열에서 선행 및 후행 공백 문자를 트림 없을 것이다. 공백 문자를 자르고 다른 문자 (예 : 개행)를 유지하려면이 답변이 도움이 될 수 있습니다.

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]): 선택적 문자를 strip([chars])메소드에 전달할 수 있습니다 . 파이썬은 이러한 문자의 발생을 찾고 그에 따라 주어진 문자열을 자릅니다.


0

시작 파일 :

     line 1
   line 2
line 3  
      line 4 

암호:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

산출:

line 1
line 2
line 3
line 4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.