[PYTHON] 파이썬 문자열에서 빈 줄을 제거하는 빠른 일렬 라이너 란 무엇입니까?
PYTHON파이썬 문자열에서 빈 줄을 제거하는 빠른 일렬 라이너 란 무엇입니까?
불필요한 빈 줄이 포함 된 파이썬 문자열에 일부 코드가 있습니다. 문자열에서 빈 줄을 모두 제거하고 싶습니다. 이 작업을 수행하는 가장 비범 한 방법은 무엇입니까?
참고 : 일반 코드 리포터를 찾지 않고, 단 하나 또는 두 개의 라이너 만 있으면됩니다.
감사!
해결법
-
==============================
1.어때?
어때?
text = os.linesep.join([s for s in text.splitlines() if s])
text는 가능한 외부 선이있는 문자열입니까?
-
==============================
2.
"\n".join([s for s in code.split("\n") if s])
첫째 :
text = "".join([s for s in code.splitlines(True) if s.strip("\r\n")])
내 마지막 버전이라고 생각해. 라인 끝을 섞는 코드에서도 잘 작동합니다. 공백이있는 행은 비어있는 것으로 간주해야한다고 생각하지 않지만, 그렇다면 간단한 s.strip ()이 대신 수행합니다.
-
==============================
3.
filter(None, code.splitlines()) filter(str.strip, code.splitlines())
~에 해당하다
[s for s in code.splitlines() if s] [s for s in code.splitlines() if s.strip()]
가독성을 위해 유용 할 수 있습니다.
-
==============================
4.신간선 및 비어있는 선을 제거 할 때의주의 사항
신간선 및 비어있는 선을 제거 할 때의주의 사항
"t"는 텍스트가있는 변수입니다. 당신은 "s"변수를 보게 될 것입니다. 그 변수는 괄호의 주 집합을 평가하는 동안에 만 존재하는 임시 변수입니다 (이 릴 파이썬의 이름은 잊어 버렸습니다)
먼저 "t"변수를 설정하여 새로운 행을 만들 수 있습니다.
>>> t='hi there here is\na big line\n\nof empty\nline\neven some with spaces\n \nlike that\n\n \nokay now what?\n'
삼중 따옴표를 사용하여 변수를 설정하는 또 다른 방법이 있습니다.
somevar=""" asdfas asdf asdf asdf asdf """"
"인쇄"없이 볼 때 다음과 같습니다.
>>> t 'hi there here is\na big line\n\nof empty\nline\neven some with spaces\n \nlike that\n\n \nokay now what?\n'
실제 줄 바꿈을 보려면 인쇄하십시오.
>>> print t hi there here is a big line of empty line even some with spaces like that okay now what?
모든 빈 줄을 지우라는 명령 (빈 칸 포함) :
그래서 somelines 개행 문자는 개행 문자이고 일부는 공백 문자를 가지므로 개행 문자처럼 보입니다.
빈 줄을 모두 없애고 싶다면 (그냥 줄 바꿈이 있거나 공백이 있으면)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip()]) hi there here is a big line of empty line even some with spaces like that okay now what?
또는:
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n").strip()]) hi there here is a big line of empty line even some with spaces like that okay now what?
참고 : t.strip () .trip (True)의 스트립은 단지 t.splitlines (True)를 제거 할 수 있지만 출력은 마지막 줄 바꿈을 제거하는 추가 줄 바꿈으로 끝날 수 있습니다. 마지막 부분 인 s.strip ( "\ r \ n"). strip ()과 s.strip ()의 strip ()은 실제로 개행과 개행에서 공백을 제거합니다.
모든 빈 줄을 지우라고 명령하십시오 (그러나 공백이있는 것은 제외) :
기술적으로 공백이있는 행은 비어있는 것으로 생각해서는 안되지만, 모두 유스 케이스와 달성하려는 대상에 따라 다릅니다.
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n")]) hi there here is a big line of empty line even some with spaces like that okay now what?
** 중간 스트립에 대한 참고 사항 **
거기에있는 중간 스트립, "t"변수에 붙어있는 것은 단지 이전 노트가 말했던 것처럼 마지막 줄 바꿈을 제거합니다. 여기에 그 줄이 없다면 어떻게 될 것인가? (마지막 줄 바꿈에주의하라.)
첫 번째 예제 (개행과 개행을 공백으로 제거)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n").strip()]) hi there here is a big line of empty line even some with spaces like that okay now what? .without strip new line here (stackoverflow cant have me format it in).
두 번째 예제 (줄 바꿈 만 제거)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n")]) hi there here is a big line of empty line even some with spaces like that okay now what? .without strip new line here (stackoverflow cant have me format it in).
끝!
-
==============================
5.이 행은 공백을 제거합니다.
이 행은 공백을 제거합니다.
re.replace (u '(? imu) ^ \ s * \ n', u '', code)
-
==============================
6.다시 모듈을 사용하여
다시 모듈을 사용하여
re.sub(r'^$\n', '', s, flags=re.MULTILINE)
-
==============================
7.그리고 지금 완전히 다른 무언가를 위해 :
그리고 지금 완전히 다른 무언가를 위해 :
Python 1.5.2 (#0, Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)] on win32 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> import string, re >>> tidy = lambda s: string.join(filter(string.strip, re.split(r'[\r\n]+', s)), '\n') >>> tidy('\r\n \n\ra\n\n b \r\rc\n\n') 'a\012 b \012c'
에피소드 2 :
이것은 1.5에서 작동하지 않습니다 :-(
그러나 보편적 인 개행과 빈 줄을 처리 할뿐만 아니라 마지막 공백을 제거하지 않고 공백을 제거합니다 (코드 줄을 정리할 때 좋습니다). 마지막 의미있는 줄이 종료되지 않은 경우 복구 작업을 수행합니다.
import re tidy = lambda c: re.sub( r'(^\s*[\r\n]+|^\s*\Z)|(\s*\Z|\s*[\r\n]+)', lambda m: '\n' if m.lastindex == 2 else '', c)
-
==============================
8.
print("".join([s for s in mystr.splitlines(True) if s.strip()]))
from https://stackoverflow.com/questions/1140958/whats-a-quick-one-liner-to-remove-empty-lines-from-a-python-string by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] xml.etree.elementtree를 사용하여 서식있는 XML 파일을 인쇄하십시오 [duplicate] (0) | 2018.10.29 |
---|---|
[PYTHON] 파이썬에서 UTC 시간을 얻는 방법? (0) | 2018.10.29 |
[PYTHON] WHERE를 사용하여 SQLAlchemy Core의 일괄 업데이트 (0) | 2018.10.29 |
[PYTHON] Python으로 csv 파일에 헤더 추가 (0) | 2018.10.29 |
[PYTHON] 파이썬에서의 엡실론 값 (0) | 2018.10.29 |