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

os.stat(filepath).st_size

Assuming by ‘characters’ you mean bytes. ETA:

i need total character count just like what the command ‘wc filename’ gives me unix

In which mode? wc on it own will give you a line, word and byte count (same as stat), not Unicode characters.

There is a switch -m which will use the locale’s current encoding to convert bytes to Unicode and then count code-points: is that really what you want? It doesn’t make any sense to decode into Unicode if all you are looking for is too-long files. If you really must:

import sys, codecs

def getUnicodeFileLength(filepath, charset= None):
    if charset is None:
        charset= sys.getfilesystemencoding()
    readerclass= codecs.getReader(charset)
    reader= readerclass(open(filepath, 'rb'), 'replace')
    nchar= 0
    while True:
        chars= reader.read(1024*32)  # arbitrary chunk size
        if chars=='':
            break
        nchar+= len(chars)
    reader.close()
    return nchar

sys.getfilesystemencoding() gets the locale encoding, reproducing what wc -m does. If you know the encoding yourself (eg. ‘utf-8’) then pass that in instead.

I don’t think you want to do this.

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

В питоне есть оператор += и нет оператора =+.

Когда вы пишете x =+1, вы на самом деле пишете x = 1. Поскольку у вас неправильно написано условие, у вас не срабатывает ни один блок. Потому что у вас в условии kolvo > 1, но у вас оно не > 1, а просто 1. Нужно было делать условие больше или равно. kolvo >= 1.

Но т.к. 0 — это falsy-объект, а все что больше 0 — это truthy объект, то можно вообще не писать эти сравнения, а написать так, как в моем примере.

count = 0

with open('file.txt', 'r') as f:
    for row in f:
        if 'a' in row:
            count += 1

if count:
    print(f'Количество элементов в файле: {count}')
else:
    print('Элементов в файле нет')

Если вы хотите посчитать не количество строк с вашей буковой, а именно количество символа в файле, то это еще проще:

with open('file.txt', 'r') as f:
    count = f.read().count('a')

if count:
    print(f'Количество элементов в файле: {count}')
else:
    print('Элементов в файле нет')

Вы можете подсчитать количество слов в текстовом файле в Python, выполнив последовательность шагов, которые мы обсудим в этом руководстве.

Чтобы подсчет количества слов, выполните следующие действия:

  1. Откройте файл в режиме чтения и обработайте его в текстовом режиме.
  2. Прочтите текст с помощью функции read().
  3. Разделите текст, используя разделитель пробелов. Мы предполагаем, что слова в предложении разделены пробелом.
  4. Длина разделенного списка должна равняться количеству слов в текстовом файле.
  5. Вы можете уточнить счет, очистив строку перед разделением или проверив слова после разделения.

Пример 1

В этом примере в Python мы прочитаем текстовый файл и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.

Welcome to tonais.ru. Here, you will find python programs for all general use cases.
file = open("C:data.txt", "rt")
data = file.read()
words = data.split()

print('Number of words in text file :', len(words))

Вывод:

Number of words in text file : 14

Пример 2: с несколькими строками

В этом примере мы прочитаем текстовый файл с несколькими строками и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.

Символ новой строки разделяет строки в текстовом файле. Новая строка – это пробел, и когда мы разделяем все данные в текстовом файле с помощью метода split(), все слова во всех предложениях разбиваются и возвращаются в виде единого списка.

Welcome to tonais.ru. Here, you will find python programs for all general use cases.
This is another line with some words.
file = open("C:data.txt", "rt")
data = file.read()
words = data.split()

print('Number of words in text file :', len(words))

Вывод:

Number of words in text file : 21

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

Сначала прочитаем текст в переменной, а затем сосчитаем символы, выполнив следующие действия:

  1. Откройте файл в режиме чтения.
  2. Прочтите текст с помощью функции read().
  3. Получите длину строки, которая должна быть количеством символов в текстовом файле.
  4. Вы можете уточнить счет, очистив строку, например удалив пробелы и знаки препинания.

Пример подсчета

Рассмотрим следующий текстовый файл.

Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.
#open file in read mode
file = open("C:data.txt", "r")

#read the content of file
data = file.read()

#get the length of the data
number_of_characters = len(data)

print('Number of characters in text file :', number_of_characters)

Вывод:

Number of characters in text file : 97

Пример 2: без учета пробелов

В этом примере мы прочитаем сам файл и подсчитаем количество символов в нем, исключая символы пробела. Рассмотрим следующий текстовый файл.

Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.
#open file in read mode
file = open("C:data.txt", "r")

#read the content of file and replace spaces with nothing
data = file.read().replace(" ","")

#get the length of the data
number_of_characters = len(data)

print('Number of characters in text file :', number_of_characters)

Вывод:

Number of characters in text file : 84

Чтобы подсчитать количество вхождений определенного слова в текстовый файл, прочтите содержимое текстового файла в строку и используйте функцию String.count() со словом, переданным в качестве аргумента.

Синтаксис

Ниже приводится синтаксис функции count():

n = String.count(word)

Где, word – это строка, а count() возвращает количество вхождений слова в эту строку.

Пример count()

В этом примере мы рассмотрим следующий текстовый файл и посчитаем количество вхождений слова «python».

Welcome to tonais.ru. Here, you will find python programs for all general use cases.
#get file object reference to the file
file = open("C:workspacepythondata.txt", "r")

#read content of file to string
data = file.read()

#get number of occurrences of the substring in the string
occurrences = data.count("python")

print('Number of occurrences of the word :', occurrences)

Вывод:

Number of occurrences of the word : 1

This div height required for enabling the sticky sidebar

Автор оригинала: Python Examples.

Вы можете рассчитывать количество слов в текстовом файле, сначала прочитав текст в переменной, а затем подсчитав символы. Мы пройдем через последовательность шагов, необходимых для подсчета символов.

Шаги для подсчета количества символов

Чтобы подсчитать количество символов в текстовом файле, выполните следующие действия.

  1. Откройте файл в режиме чтения
  2. Прочитайте текст, используя функцию READ ().
  3. Получите длину строки, которая должна быть количество символов в текстовом файле.
  4. Вы можете уточнить количество, очищая строку, как удаление персонажей белого пространства и знаков препинания.

Пример 1. Считайте символы в текстовом файле

В этом примере Python мы будем читать текстовый файл и подсчитать количество символов в нем. Рассмотрим следующий текстовый файл.

Текстовый файл

Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.

Python Program

#open file in read mode
file = open("C:data.txt", "r")

#read the content of file
data = file.read()

#get the length of the data
number_of_characters = len(data)

print('Number of characters in text file :', number_of_characters)

Выход

Number of characters in text file : 97

Пример 2: Считайте символы в текстовом файле, исключая пробелы

В этом примере Python мы прочитаем текстовый файл и посчитаем количество символов в нем, исключая символы белого пространства. Рассмотрим следующий текстовый файл.

Текстовый файл

Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.

Python Program

#open file in read mode
file = open("C:data.txt", "r")

#read the content of file and replace spaces with nothing
data = file.read().replace(" ","")

#get the length of the data
number_of_characters = len(data)

print('Number of characters in text file :', number_of_characters)

Выход

Number of characters in text file : 84

Резюме

В этом руководстве примеров Python мы узнали, как сосчитать количество символов в текстовом файле, с помощью примеров программ.

Похожие учебники

  • Python – Количество слов в текстовом файле
  • Python – количество вхождений слова в текстовом файле


  • Метки



    count, file, python, text

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

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

Решение задачи на языке программирования 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') по смыслу аналогичны соответствующим логическим выражениям из предыдущих вариантов программы.

Больше задач в PDF

Понравилась статья? Поделить с друзьями:
  • Завоздушились тормоза как исправить
  • Как найти дельта сопромат
  • Witcher 3 0xc000007b как исправить
  • Как найти реакцию цепи
  • Как найти шагомер в телефоне реалми