2015-11-23 2 views
1

Одна из моих программ python - найти количество предложений, слов и букв текстового файла и распечатать их на экране. Я немного смущен тем, как я должен это делать. У меня есть идея о том, как получить слова, но я не уверен, как заставить программу заметить, сколько предложений и букв находится в текстовом файле. как я могу получить вывод для печати на экран, чтобы я мог убедиться, что я делаю правильные настройки. ниже - текстовый файл, который, я предполагаю, должен пройти с программой.Определение количества предложений, слов и букв в текстовом файле

fname = "gettysburg.txt" 

num_lines = 0 
num_words = 0 
num_chars = 0 

with open(fname, 'r') as f: 
    for line in f: 
     words = line.split() 

     num_lines += 1 
     num_words += len(words) 
     num_chars += len(line) 

Я понял, как напечатать его на экран, что я нужна помощь сейчас как я могу это сделать, чтобы он мог определить, что это предложение и как считать, что. Мне также нужно выяснить, как считать символы, но без учета пробелов только букв.

+0

Это дает мне количество правильных слов, но я должен получить правильное количество предложений, которые не совпадают с строками, и символы дают мне количество букв, включая пробелы, которые не то, что мне нужно. Я надеюсь получить количество букв или символов, не включая пробелы. –

ответ

1

Используйте вместо этого num_chars += len(line.replace(' ', '')), который удаляет все пробелы из строки.

Для предложений (предполагая, что все предложения заканчиваются в период и нет многоточия в предложении), вы можете использовать метод подсчета: num_lines += line.count(".")

Так что в вашем коде будет выглядеть так:

fname = "gettysburg.txt" 

num_lines = 0 
num_words = 0 
num_chars = 0 

with open(fname, 'r') as f: 
    for line in f: 
     words = line.split() 

     num_lines += line.count(".") 
     num_words += len(words) 
     num_chars += len(line.replace(' ', '')) 
+0

как бы это выглядело в моей программе, потому что я не уверен, как добавить это без получения синтаксической ошибки. –

+0

спасибо, что это именно то, что я ищу –

+0

Я быстро изменил num_lines. Предыдущий метод не учитывает наличие нескольких предложений в одной строке. –

0
fname = "gettysburg.txt" 

num_lines = 0 
num_words = 0 
num_chars = 0 

with open(fname, 'r') as f: 
    for line in f: 
     words = line.split() 

     num_lines += 1 
     num_words += len(words) 
     num_chars += len(line) 

print(num_lines) 
print(num_words) 
print(num_chars) 
+0

Спасибо, я в конечном итоге выяснил, как распечатать его. –

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