2014-11-06 5 views
1

Мне нужно создать функцию генератора, которая будет читать слово по запросу char символом из текстового файла. Я знаю .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) 

Этот код не совсем то, что я хочу :(У меня нет большого опыта в программировании ...

EDIT: У меня есть код, как это сейчас:

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

Совет: не использовать то же имя переменной 'char' для для цикла и' = File.read (1) '. Кроме того, если вы используете диспетчер контекста ('with'), вам не нужно вручную закрывать файл –

+0

Что печатает программа? И что вы ожидали от печати? –

+0

Эта строка кода печатает строки из текста, но без первого символа: P Я хочу напечатать одно слово из текста, так что в этом случае будет только первое слово. – pirelius

ответ

0
for char in file: 

Эта строка читает строку не символ.

Так что вам нужно сделать что-то вроде this-

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

Имеет смысл, но я думаю, что мне также следует создать строку, а не список, поэтому примерно так: word =" " с открытым (" text.txt "," r ") в качестве файла: символа = file.read (1) для строки в файле: для полукокса в строке: если символ = "«: слова + = символ печать (слово) Но им до сих пор не получить то, что мне нужно: (теперь я все еще печатаю строки – pirelius

Смежные вопросы