Как посчитать количество символов в файле python
В некоторых случаях при работе со строками в Python нам необходимо определить длину строки. Сделать это можно несколькими способами, а какими — мы сейчас и узнаем.
Итак, в языке программирования Python строки относят к категории неизменяемых последовательностей, что необходимо помнить при вызове методов и функций. Теперь давайте представим, что у нас есть строка, и нам требуется найти её длину:
Сделать это можно несколькими способами.
Определяем длину строки в Python: способ № 1
Начнём с общеизвестного и наиболее популярного — использования функции len() . Эта встроенная функция возвращает количество символов в исследуемой нами строке, определяя таким образом её длину. Тут всё элементарно, и вы можете проверить код ниже на любом онлайн-компиляторе:
Итогом работы функции станет следующий вывод в терминал:
Ищем длину строки в «Питоне»: способ № 2
Чтобы подсчитать количество символов в строке Python, мы можем воспользоваться циклом for и счётчиком. Тут тоже всё просто, т. к. определение длины происходит путём подсчёта числа итераций.
Соответственно, наш вывод в консоли тоже будет равен 4.
Поиск длины строки в Python: способ № 3
Теперь давайте воспользуемся циклом while. Мы «нарежем» строку, укорачивая её на каждой итерации, в результате чего получим пустую строку и остановку цикла. А подсчёт количества итераций снова позволит нам вывести в терминал искомую длину.
Находим длину строки в Python: способ № 4
Теперь воспользуемся строковым методом объединения. Он принимает итеративный элемент, возвращая строку, являющуюся объединением строк в итерируемом нами элементе. Разделитель между элементами — исходная строка, для которой и вызывается метод. Применение метода объединения с последующим подсчётом объединённой строки в исходной строке тоже позволит нам получить длину строки на «Питоне».
Как и во всех примерах выше, в консоль выведется количество символов в строе ‘otus’, равное 4. Вот и всё!
Хотите знать про Python гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков:
Вы можете подсчитать количество слов в текстовом файле в Python, выполнив последовательность шагов, которые мы обсудим в этом руководстве.
- Откройте файл в режиме чтения и обработайте его в текстовом режиме.
- Прочтите текст с помощью функции read().
- Разделите текст, используя разделитель пробелов. Мы предполагаем, что слова в предложении разделены пробелом.
- Длина разделенного списка должна равняться количеству слов в текстовом файле.
- Вы можете уточнить счет, очистив строку перед разделением или проверив слова после разделения.
Пример 1
В этом примере в Python мы прочитаем текстовый файл и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.
Пример 2: с несколькими строками
В этом примере мы прочитаем текстовый файл с несколькими строками и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.
Символ новой строки разделяет строки в текстовом файле. Новая строка – это пробел, и когда мы разделяем все данные в текстовом файле с помощью метода split(), все слова во всех предложениях разбиваются и возвращаются в виде единого списка.
Подсчет количества символов в текстовом файле
- Откройте файл в режиме чтения.
- Прочтите текст с помощью функции read().
- Получите длину строки, которая должна быть количеством символов в текстовом файле.
- Вы можете уточнить счет, очистив строку, например удалив пробелы и знаки препинания.
Пример подсчета
Рассмотрим следующий текстовый файл.
Пример 2: без учета пробелов
В этом примере мы прочитаем сам файл и подсчитаем количество символов в нем, исключая символы пробела. Рассмотрим следующий текстовый файл.
Чтобы подсчитать количество вхождений определенного слова в текстовый файл, прочтите содержимое текстового файла в строку и используйте функцию String.count() со словом, переданным в качестве аргумента.
Синтаксис
Ниже приводится синтаксис функции count():
Где, word – это строка, а count() возвращает количество вхождений слова в эту строку.
Пример count()
В этом примере мы рассмотрим следующий текстовый файл и посчитаем количество вхождений слова «python».
Ниже моя программа, но количество отсчетов для символов без пробела неверно.
Количество слов верное и количество строк правильное.
Какая ошибка в том же цикле?
В то время как количество символов без пробела равно 35 и с пробелом 45.
Если возможно, я хочу найти количество символов без пробела. Даже если кто-то знает цикл для количества символов с достаточным пространством.
Суммируйте длину всех слов в строке:
является выражением генератора . Это по существу цикл в одной строке, который вырабатывает длину каждого слова. Мы корнем эти длины непосредственно sum :
Улучшенная версия
Эта версия использует enumerate , поэтому вы сохраняете две строки кода, сохраняя удобочитаемость:
открывает файл с обещанием закрыть его, как только вы покинете отступ.
Всегда хорошая практика закрывать файл после того, как вы его используете.
Таким образом, ровно два символа добавляются в этом случае как 47, а не 45.
Хорошим способом преодоления этого может быть использование:
Чтобы подсчитать символы, вы должны считать каждое отдельное слово. Таким образом, у вас может быть другой цикл, который учитывает символы:
Это должно быть сделано. Список слов должен, вероятно, отображать символы новой строки справа, возможно, что-то вроде wordslist = line.rstrip().split() .
Я нашел это решение очень простым и удобочитаемым:
Это слишком долго для комментария.
Python 2 или 3? Потому что это действительно важно. В своем REPL выполните следующие действия:
Как это? Он использует регулярное выражение для соответствия всем символам без пробелов и возвращает количество совпадений внутри строки.
Выход
На приведенном ниже рисунке показано, как это протестировано в RegExr:
Это, вероятно, подсчет новых символов строки. Вычитайте символы с помощью (строк + 1)
Проверьте вывод. Я просто протестировал его.
Более питоновское решение, чем другие:
Другие ответы здесь делают вручную, что делает str.splitlines() . Нет причин изобретать велосипед.
Теперь есть много людей, которые опубликовали довольно хорошие ответы, но я считаю, что этот метод легче понять:
line.strip() удаляет конечные и ведущие пробелы. Затем я вычитаю количество пробелов из общей длины.
Просто пропустите нежелательные символы при вызове len ,
или sum счетчик,
или постройте a str из wordlist и возьмите len ,
или sum символы в wordlist . Я думаю, что это самый быстрый.
Это очень просто:
Здесь я получил самую маленькую программу с меньшим использованием памяти для вашей проблемы
Ниже моя программа, но количество отсчетов для символов без пробела неверно.
Количество слов верное и количество строк правильное.
Какая ошибка в том же цикле?
В то время как количество символов без пробела равно 35 и с пробелом 45.
Если возможно, я хочу найти количество символов без пробела. Даже если кто-то знает цикл для количества символов с достаточным пространством.
Суммируйте длину всех слов в строке:
является выражением генератора . Это по существу цикл в одной строке, который вырабатывает длину каждого слова. Мы корнем эти длины непосредственно sum :
Улучшенная версия
Эта версия использует enumerate , поэтому вы сохраняете две строки кода, сохраняя удобочитаемость:
открывает файл с обещанием закрыть его, как только вы покинете отступ.
Всегда хорошая практика закрывать файл после того, как вы его используете.
Помните, что каждая строка (кроме последней) имеет разделитель строк.
То есть "\ r\n" для Windows или "\n" для Linux и Mac.
Таким образом, ровно два символа добавляются в этом случае как 47, а не 45.
Хорошим способом преодоления этого может быть использование:
ответил(а) 2017-01-06T14:16:00+03:00 4 года, 10 месяцев назадЧтобы подсчитать символы, вы должны считать каждое отдельное слово. Таким образом, у вас может быть другой цикл, который учитывает символы:
Это должно быть сделано. Список слов должен, вероятно, отображать символы новой строки справа, возможно, что-то вроде wordslist = line.rstrip().split() .
ответил(а) 2017-01-06T14:15:00+03:00 4 года, 10 месяцев назадЭто слишком долго для комментария.
Python 2 или 3? Потому что это действительно важно. В своем REPL выполните следующие действия:
А? Ответ лежит в Юникоде. Это ñ является "n" с сочетанием диакритики. Значение его 1 символа, но не 1 байт. Поэтому, если вы не работаете с простым текстом ASCII, лучше указать, для какой версии python предназначена функция подсчета символов.
ответил(а) 2017-01-06T17:46:00+03:00 4 года, 10 месяцев назадЯ нашел это решение очень простым и удобочитаемым:
ответил(а) 2017-01-06T14:36:00+03:00 4 года, 10 месяцев назадКак это? Он использует регулярное выражение для соответствия всем символам без пробелов и возвращает количество совпадений внутри строки.
Выход
На приведенном ниже рисунке показано, как это протестировано в RegExr:
Проверьте вывод. Я просто протестировал его.
ответил(а) 2017-01-06T14:17:00+03:00 4 года, 10 месяцев назадЭто, вероятно, подсчет новых символов строки. Вычитайте символы с помощью (строк + 1)
ответил(а) 2017-01-06T14:16:00+03:00 4 года, 10 месяцев назадБолее питоновское решение, чем другие:
Другие ответы здесь делают вручную, что делает str.splitlines() . Нет причин изобретать велосипед.
ответил(а) 2017-01-07T06:04:00+03:00 4 года, 10 месяцев назадПросто пропустите нежелательные символы при вызове len ,
или sum счетчик,
или постройте a str из wordlist и возьмите len ,
или sum символы в wordlist . Я думаю, что это самый быстрый.
ответил(а) 2017-01-06T14:44:00+03:00 4 года, 10 месяцев назадУ вас две проблемы. Один - это окончания строки, а другой - промежутки между ними.
Теперь есть много людей, которые опубликовали довольно хорошие ответы, но я считаю, что этот метод легче понять:
line.strip() удаляет конечные и ведущие пробелы. Затем я вычитаю количество пробелов из общей длины.
ответил(а) 2017-01-06T14:26:00+03:00 4 года, 10 месяцев назадУ вас есть правильный ответ - и ваш код полностью верен. То, что я думаю, это то, что проходит конец символа линии, который включает в себя ваш счетчик символов на два (в последней строке нет ни одной новой строки). Если вы хотите удалить это, простая выдумка будет заключаться в том, чтобы предлагать Loaf
См. ответ csl для второй части.
ответил(а) 2017-01-06T14:18:00+03:00 4 года, 10 месяцев назадвзять входные данные в качестве имени файла, т.е. files.txt из входного параметра, а затем подсчитать общее количество символов в файле и сохранить в переменную char
ответил(а) 2019-03-05T19:32:00+03:00 2 года, 8 месяцев назадЗдесь я получил самую маленькую программу с меньшим использованием памяти для вашей проблемы
Строки будут списком строк, поэтому длина строк - это не что иное, как количество строк. Следующие данные шага содержат строку содержимого вашего файла (каждое слово отделено пробелом), поэтому, если мы разделим данные, вы получите список слов в вашем файле. таким образом, длина этого списка дает количество слов. снова, если мы присоединимся к списку слов, вы получите все символы в виде одной строки. таким образом длина этого дает количество символов.
Читайте также: