Как узнать количество символов в файле python
Перейти к содержимому

Как узнать количество символов в файле python

  • автор:

Подсчет строк, слов и символов в файле

Цикл for языка Python извлекает из файлового объекта данные построчно (одну строку на каждой итерации цикла). Таким образом, количество итераций цикла определит количество строк в файле.

Встроенная функция len() языка Python считает количество элементов в передаваемой в нее объекте. С ее помощью находится количество символов в каждой строке.

Строковый метод split() разбивает строку на части. По-умолчанию разделение происходит по местам расположения пробелов в строке. Таким образом, мы можем определить количество слов в каждой строке, посчитав с помощью len() слова в получившемся после применения split() списке.

На каждой итерации цикла мы должны добавлять полученные значения к переменным, хранящим общие количества строк, слов и символов.

file = open('text.txt') lines = 0 words = 0 symbols = 0 for line in file: lines += 1 words += len(line.split()) symbols += len(line) print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

Пусть содержимое файла text.txt будет таким:

one two three city town big small

Тогда программа даст следующий результат:

Lines: 3 Words: 7 Symbols: 34

Cимволами считаются не только буквы, также пробелы и переходы на новую строку (символ ‘\n’ ). Если требуется не учитывать переход на новую строку как символ, его можно «отрезать» с помощью строкового метода strip() . Делается это перед тем, как строка передается в функцию len() : symbols += len(line.strip(‘\n’)) .

Если данную задачу надо решить без использования продвинутых возможностей (встроенных функций и методов) языка программирования Python, а в рамках изучения алгоритмов или на более «низком» уровне, то программа может выглядеть так:

file = open('text.txt') text = file.read() lines = 0 words = 0 symbols = 0 in_word = False for char in text: symbols += 1 if char == '\n': lines += 1 if char != ' ' and char != '\n' and in_word == False: words += 1 in_word = True elif char == ' ' or char == '\n': in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

Здесь на каждой итерации цикла мы имеем дело не с целой строкой, а с очередным символом. При этом увеличиваем на единицу переменную, хранящую количество символов, и, если текущий символ — это переход на новую строку, переменную для подсчета количества строк.

Для подсчета слов требуется определить в программе еще одну переменную, в которой будет храниться «сигнал», находимся ли мы внутри слова. Если это так, то очередной непробельный символ не следует считать началом нового слова и не надо увеличивать счетчик слов.

Алгоритм подсчета слов в программе выше следующий. Если текущий символ не пробел И не переход на новую строку, И ранее мы находились вне слова ( in_word == False ), то есть соблюдены все три условия сразу, значит началось новое слово. Поэтому увеличиваем счетчик слов и устанавливаем in_word в значение True . Последнее действие позволит на следующей итерации цикла, при условии обработки второй и послеющих букв слова, не соблюдаться условию in_word == False и не увеличивать счетчик слов.

Мы «сбрасываем» in_word в False , только когда встречаем пробельный символ ИЛИ переход на новую строку (любое одно из двух условий).

Программа выше, также как в первом варианте, считает переход на новую строку за символ. Если требуется его исключить, можно поместить увеличение значения счетчика символов в ветку else :

. for char in text: if char == '\n': lines += 1 else: symbols += 1 .

Если очередной символ — это переход на новую строку, увеличивается счетчик строк. В остальных случаях, — счетчик символов.

Если файл большой, то считывать сразу все его содержимое в строковую переменную ( text = file.read() ) неблагоразумно. Если читать файл посимвольно ( file.read(1) ), то условием завершения работы цикла будет момент возрата методом read() пустой строки, что означает конец файла (в других языках может быть специальный символ конца файла, доступный через идентификатор EOF — end of file).

lines = 0 words = 0 symbols = 0 in_word = False with open('text.txt') as file: while True: char = file.read(1) if char == '': break symbols += 1 if char == '\n': lines += 1 if char not in (' ', '\n') and not in_word: words += 1 in_word = True elif char in (' ', '\n'): in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)

В этом примере для открытия файла используется оператор with , который рекомендован для работы с файлами. Выражения char not in (‘ ‘, ‘\n’) and not in_word и char in (‘ ‘, ‘\n’) по смыслу аналогичны соответствующим логическим выражениям из предыдущих вариантов программы.

X Скрыть Наверх

Решение задач на Python

Посчитать количество определенных символов в строке Python

Для того, чтобы найти количество вхождений символа в строке, можно воспользоваться методом count . В первом параметре метода задаем нужный нам символ, во втором и третьем необязательных параметрах — индекс начала и конца поиска соответственно. Смотрите пример:

Посчитать вхождения символа на определенном месте в строке

Давайте найдем количество вхождений символа a , указав для поиска начало и конец:

txt = ‘abcadea’ res = txt.count(‘a’, 0, 2) print(res)

Результат выполнения кода:

Посчитать количество всех вхождений определенного символа в строке

Теперь давайте найдем количество всех вхождений подстроки ‘a’ в строке:

txt = ‘abcadea’ res = txt.count(‘a’) print(res)

Результат выполнения кода:

Посчитать количество всех вхождений определенных символов в строке

Давайте найдем количество всех вхождений каждого из символов в строке:

txt = ‘abcadea’ dct = <> for el in txt: dct[el] = txt.count(el) print(dct)

Результат выполнения кода:

Смотрите также

  • метод count ,
    который возвращает количество вхождений подстроки в строке
  • функция len ,
    которая возвращает длину строки

Посчитать количество строк, слов и букв в текстовом файле

Напишите программу, которая считает количество символов, слов и строк в переданном ей файле.

import sys # argv - список аргументов командрой строки # argv[0] - имя самого файла-скрипта # argv[1] - первый аргумент, # здесь - имя обрабатываемого файла fname = sys.argv[1] # Переменные для подсчета строк, слов и букв. lines = 0 words = 0 letters = 0 # Функция open() открывает переданный ей файл # и возвращает объект, итерация по которому # позволяет последовательно извлекать строки файла. for line in open(fname): # Была получена очередная строка. # Она присваивается переменной line. # Счетчик строк следует увеличить на 1. lines += 1 # С помощью len определяется # количество символов в строке # и добавляется к счетчику букв. letters += len(line) # Код ниже считает количество слов в текущей строке. # Флаг, сигнализирующий нахождение за пределами слова. pos = 'out' # Цикл перебора строки по символам. for letter in line: # Если очередной символ не пробел, # а флаг в значении "вне слова", # значит начинается новое слово. if letter != ' ' and pos == 'out': # Поэтому надо увеличить счетчик слов на 1, words += 1 # а флаг поменять на значение "внутри слова". pos = 'in' # Если очередной символ пробел, elif letter == ' ': # то следует установить флаг # в значение "вне слова". pos = 'out' # Вывод количеств строк, слов и символов на экран. print("Lines:", lines) print("Words:", words) print("Letters:", letters)
Похожие записи:
  1. Эффективный ввод-вывод в разных языках программирования
  2. Код Цезаря
  3. Docstring в Django
  4. Комбинации

Добавить комментарий Отменить ответ

Многие современные телевизоры среднего и нижнего ценового диапазона не способны обеспечить качественное звучание. Во

Книга «CRM-системы» представляет собой обзор и анализ различных CRM-систем, используемых в современном бизнесе. Автор рассматривает популярные

Подсчитать количество символов в каждой строке файла

Author24 — интернет-сервис помощи студентам

Дан текстовый файл. Подсчитать количество символов в каждой строке
Дан текстовый файл. Подсчитать количество символов в каждой строке. Помогите переделать из.

Подсчитать количество символов в каждой строке файла
Здравствуйте, задача довольно простая, но запутался окончательно в циклах. Задача: Вывести.

Подсчитать количество символов в каждой строке текстового файла
Добрый вечер, вот такую задачу нужно реализовать, подскажите пожалуйста как ее реализовать, если.

Подсчитать количество символов в каждой строке данного текстового файла
Помогите пожалуйста. Задача 6. Дан текстовый файл. Подсчитать количество символов в каждой.

4488 / 3237 / 1130
Регистрация: 21.03.2016
Сообщений: 7,978

и в чем проблема? открыть файл для чтения, считать строки, посчитать количество символов в каждой строке.

206 / 189 / 166
Регистрация: 19.01.2011
Сообщений: 483

1 2 3 4
f = open('text.txt', 'r') for line in f: print(len(line.strip())) f.close()

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Подсчитать количество символов в каждой строке
Дан текстовый файл.Подсчитать количество символов в каждой строке.

Подсчитать количество символов в каждой строке
Даны текстовый файл с латиницей и цифрами. Подсчитать количество символов в каждой строке и массив.

Подсчитать количество символов в каждой строке
15.10. Дан текстовый файл. Подсчитать количество символов в каждой строке. решение #C или #C++

Подсчитать количество символов в каждой строке
VBA. Дан текстовый файл. Подсчитать количество символов в каждой строке. Результат записать в форму

Подсчитать количество чисел в каждой строке файла
мне нужно на СИ: Дан текстовый файл, состоящий из одной или нескольких строк. Каждая тсрока файла.

Подсчитать количество слов в каждой строке файла
Дошёл до такого в 24 строке выдаёт ошибку и дальше ещё пару ошибок,помогите разобраться. #include.

Подсчитать количество знаков препинания в каждой строке файла
1 – чтение строк файла, вывод их на экран и подсчет количества знаков препинания в каждой строке,

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *