2014-10-19 6 views
2

질문 : 내 .txt 인 파일에서 빈 줄을 제거하는 것을 시도하고있다파이썬 제거 라인

. .txt 파일은 Python에서 HTML 다운로드를 통해 생성되므로 특정 위치에 저장하려고하므로 Os.path.join을 사용해야합니다.

이 모든 태그를 제거하고 태그의 내부 보관 후 위치에 HTML을 저장하는 코드 :

cntent = re.sub('<[^>]+>',"\n", str(cntent)) 
with open(os.path.join('/Users/Brian/Documents/test',titles), "wb") as file: 
     file.writelines(str(cntent)) 

은 내가 어떻게 이것을 달성 할 수 있습니까?

파일의 결과 : 나는 시도 무엇

Productspecificaties 




Uiterlijke kenmerken 















Gewicht 










185 g 

:

filtered = filter(lambda x: not re.match(r'^\s*$', x), original) 

원하는 결과

Productspecificaties 
Uiterlijke Kenmerken 
Gewicht 
185Gr 

첫 번째 코드 줄 re.sub...에서는 "\ n"을 사용합니다. 그렇지 않으면 공간이 전혀 없기 때문입니다.

+2

아마도 ''\ n '과 같은 간단한 것일 수 있습니다. (line.strip()! =' '))'? cntent.split()의 줄에 대해 [line.strip() – Gohn67

답변

5

당신은 정규 표현식을 사용할 필요가 없습니다 m 옵션 시도 : 시작 부분에

cntent = re.sub('<[^>]+>',"\n", str(cntent)) 
with open(os.path.join('/Users/Brian/Documents/test', titles), "wb") as f: 
    f.writelines(line for line in cntent.splitlines(True) if line.strip()) 

str.strip() 스트립 공간 (includign 줄 바꿈) 및 문자열 끝에. 공백으로 만 구성된 행의 경우 빈 문자열을 반환합니다. 거짓 값으로 평가됩니다.

str.splitlines은 줄을 분할하는 데 사용되었지만 새 줄을 제외하지 않았습니다.

+0

'f.writelines'에서 놓친 들여 쓰기와 별개로이 코드는 작동합니다! 고맙습니다! – user3671459

+0

@ user3671459, 들여 쓰기를 놓친 것은 무엇을 의미합니까? – falsetru

+0

'IndentationError : 들여 쓰기 된 블록 예상'이제 모든 파일이 올바르게 포맷되지 않은 이유를 알아 냈습니다. – user3671459

-1

이 패턴 w
^\s+/
Demo