2014-03-13 6 views
0

고유 한 문제점이 있습니다. 모든 줄을 하나의 문자열에 넣을 필요가있는 파일을 구문 분석 할 필요가 있습니다. 일반적으로 str.strip()을 사용하여 접근하지만, 중요한 것은 각 줄의 시작과 끝에 공백이 있다는 것을 깨달았습니다. 값. 공백을 제외한 모든 공백을 제거하는 쉬운 방법이 있습니까? 그렇지 않은 경우, 대체 방법은 나타나는 모든 공백 유형에 대해이를 수행하는 것이므로 내 문자열에서 특정 문자를 삭제하는 좋은 방법은 무엇입니까?공백을 제외하고 공백을 제거하십시오.

다음은 해당 파일입니다. http://www.rcsb.org/pdb/files/ss.txt

+0

파일의 예를 게시하십시오 – BoshWash

+0

로캘에 따라 다릅니다 – wim

답변

4

사용 :

whitespace = "\r\n\t" 
my_string.strip(whitespace) 

또는, string 모듈 사용 :

import string 
whitespace_except_space = string.whitespace.replace(" ", "") 
my_string.strip(whitespace_except_space) 
+0

중간의 공백이 명시 적으로 공백이 아니라고 가정합니다. 그 질문은 그 점을 명시하지 않습니다. @avorum은 중간에 탭 문자와 공백이 있는지 지정해야합니다. 그렇지 않은 경우 귀하의 대답은 정확합니다. 그렇지 않으면 여전히 문제가 있습니다. 코멘트는 내가 보여 주려고했을 때 선행 공백을 제거하는 것으로 보인다. – sabbahillel

+0

'whitespace' 변수에서 탭을 제거하면 괜찮을 것입니다. – tmr232

+0

필자는 명시적인 공백이 중간과 끝에있는 경우 솔루션을 제공 할 때 문제가 발생할 수 있음을 의미했습니다. 예를 들어 '\ ta \ t \ tb \ t \ tc \ t \ td \ t'중간에서 제거 할 수 있지만 끝에서 제거하지 마십시오. – sabbahillel

0

또한 유닉스 유틸리티를 사용하여이 작업을 수행 할 수 있습니다 그냥 옵션을 사용 tr -d '\n' < seq.fa 를 -D '공백 -element '를 제거하십시오.

관련 문제