2014-11-06 2 views
1

요청 문자가있는 문자를 문자 파일에서 읽어 오는 생성기 함수를 만들어야합니다. 나는 .split()을 알고 있지만, 공백이 될 때까지 char에 의해 char이 필요하다.Python은 공백 문자까지 문자를 읽습니다.

word = [] 
with open("text.txt", "r") as file: 
    char = file.read(1) 
    for char in file: 
     if char != " ": 
      word.append(char) 
file.close() 
print(word) 

이 코드는 정확히 내가 원하는 걸하지 않습니다 :(내가 프로그래밍에 많은 경험이없는 ...

편집 :

def generator(): 
word = " " 
with open("text.txt", "r") as file: 
    file.read(1) 
    for line in file: 
     for char in line: 
      if char != " ": 
       word += char 
return(word) 


def main(): 
    print(generator()) 

if __name__ == '__main__': 
    main() 
: 지금과 같은 코드가 있습니다

그리고 이제는 원하는대로 처리하고, 숯을 하나 하나 출력하지만, 공백 뒤에 "" ""공백이 없으므로 전체 텍스트를 공백없이 인쇄합니다. 함수의 공백 및 점프?

+0

팁 같은 것을 할 필요가 : 루프와'= file.read (1)'에 대해 동일한 변수 이름'char'을 사용하지 마십시오. 또한 컨텍스트 관리자 ('with')를 사용하면 수동으로 파일을 닫을 필요가 없습니다. –

+0

프로그램이 무엇을 인쇄합니까? 그리고 무엇을 인쇄하기를 기대 했습니까? –

+0

이 코드 줄은 텍스트의 줄을 인쇄하지만 첫 번째 문자는 인쇄하지 않습니다. P 텍스트에서 한 단어 만 인쇄합니다.이 경우 첫 번째 단어 만 인쇄합니다. – pirelius

답변

0
for char in file: 

이 줄은 문자가 아닌 한 줄을 읽습니다.

그래서 당신은 this-

for line in file: 
    for char in line: 
+0

의미가 있지만, 나는 또한 목록이 아닌 문자열을 작성해야한다고 생각하므로 다음과 같이 입력하십시오. word =" " open ("text.txt ","r ") as file : 문자 = file.read 파일의 라인 (1) : 라인의 문자에 대한 : 경우 문자 = ""! 단어 + = 문자 인쇄 (단어) 그러나 메신저 여전히 원하는하지 : (지금 나는 여전히 전체 라인을 인쇄한다. – pirelius

관련 문제