2014-09-24 5 views
-1
input = open("ex3.txt") 
DNA = input.read() 
DNA2 = "AAAACCCGGT" 
print "string=", DNA,"len=", len(DNA) 
print "strin2=",DNA2,"len=",len(DNA2) 

반환는 추가 nonetype 문자를

>string= AAAACCCGGT 
>len= 11 
>strin2= AAAACCCGGT len= 10 

을 추가 내가 (입력 사용 input.read을로드 할 때 때문에)는, 동일한 나타나는 두 문자열이 서로 다른 길이를 가지고 볼 수 있듯이 문자열은 Nonetype으로 끝납니다. (편집 : 실제로 '\ n'으로 끝납니다.)

문자열 입력을 Nontype으로 끝내지 않고 텍스트 파일에서로드하는 방법이 있습니까? 아니면 그냥로드해야하며 DNA [: - 1] .read()가 항상 최종 값으로 Nonetype을 가질 것이라고 가정 할 때 입력을 연결해야합니까? 어떤 조언에 대한

덕분에

편집 - D : : 나는 내가 Nonetype 때문에 오류 메시지입니다에 대해 혼란스러워했다 이유 가정 : 어쨌든 "형식 오류 'STR'연결할 수 없습니다와 'NoneType'객체를" 텍스트 모드에서 파일을 다시 모두

+2

'\ n'은 ** 개행 **을 의미하며 '없음'이 아닙니다. – Veedrac

+0

DNA가 Nonetype으로 끝나는 것을 어떻게 아십니까? 파일이'\ n'으로 끝나는 것이 아니라는 것이 확실합니까? –

+0

이 게시물에서'\ n' *은 *에 관한 중요한 오해가 있기 때문에 나는 http://stackoverflow.com/questions/12330522/reading-a-file-without-newlines의 중복으로 닫지 않을 것입니다. 최소한 그 링크를 읽는 것이 가치가 있습니다. – Veedrac

답변

1

.read 큰 감사를 .rstrip 근무 전화는 항상 \n IFF 반환 문자가있다. 즉, 행 뒤에 다른 행이 없으면 DNA[:-1]이 중단 될 수 있습니다.

원하는 것을 수행하는 한 가지 방법은 DNA.rstrip()입니다. 이것은 문자열의 오른쪽 공백을 제거합니다.

또한 라인을 읽고 싶다면 .readline을 원할 수도 있습니다. read은 전체 파일을 읽습니다.