2013-10-14 2 views
2

잘못된 출력을 생성하는 코드에 문제가 있습니다.Python의 Openfile 함수

def main(): 
    count = 1 
    filename = input('Enter filename: ') 
    for lines in open(filename): 
     lines.strip('') 
     print('Total # of characters: ',len(lines)) 
     count = count + 1 
    print('Total number of lines =', count) 
main() 

문제 - 한 줄에 하나의 단어를 가지고 그, 파일, words.txt을 읽고 문자의 총 수와 파일의 행의 총 수를 출력하는 프로그램을 작성.

그래서 내 코드는 마지막에 인쇄 될 파일의 ​​줄 수를 계산하기 위해 count를 사용합니다. 이 계산은 정상적으로 작동합니다. 그러나 문자를 세는 것은 잘못되었습니다. 내 출력 ...

Enter filename: word.txtEnter filename: word.txt 
Total # of characters: 3 
Total # of characters: 6 
Total # of characters: 5 
Total # of characters: 6 
Total # of characters: 6 
Total number of lines = 5 

word.txt 파일 = 만에 ''

이 수행 제거하는 lines.strip('') 이렇게함으로써

hi 
hello 
hiiiiiiii 
herrooo 
herr 
+0

실제 문제는 무엇입니까? 그 출력은 줄 바꿈 문자를 고려해 보았습니다. – kindall

+0

문제는 문자의 길이입니다. 예를 들어, hi의 길이는 2 여야합니다. 새 라인 문자를 제거하려면 어떻게해야합니까? – steve

답변

3

:

lines = lines.strip() 

strip()을 것입니다 끝에 \n도 제거하십시오.

+2

'lines.strip()'뿐만 아니라'lines = lines.strip()'이어야합니다. – karthikr

+0

제출 전에 편집 내용을 보지 못했습니다. 닌자 편집을 위해 +1하십시오 – Andy

+0

또한 줄 바꿈을 제거하기 위해'lines.rstrip ('\ n')'이 더 적절할 것입니다. 공간이 OP의 목적을위한 유효한 "문자"인지 여부에 따라. – millimoose

1

문제는 lines.strip('') 행입니다. 매개 변수를 전달하면 '' 일 때만 선을 제거합니다. 다른 문제는이 문장을 아무 것도 지정하지 않는다는 것입니다. 이를 (를) 대체 해보십시오.

lines = lines.strip()