Python Program to Count Vowels, Lines, Characters in Text File

This article is created to cover many programs in Python related to counting of characters such as vowels, consonants, newline, blank space etc. in a given or entered text file by user at run-time. Here are the list of programs covered in this article:

Before moving on to the programs, let's do some important things to implement and execute the program based on text file.

Things to do Before Program

Because the program given below is used to count characters in a text file. Therefore first we've to create a text file say fresherearth.txt with some contents say:

Hello Python
This is a text File
The name of this file is fresherearth.txt

Save this file inside the current directory. The current directory is the directory where the Python code to count characters of this file is saved. Here is the snapshot of the folder where the file fresherearth.txt is saved:

python count characters in file

And here is the snapshot of opened file fresherearth.txt:

count characters in text file python

Now let's create some Python programs to do the task like counting of characters, vowels, spaces etc. of this text file.

Count Vowels in Text File

The question is, write a Python program to count number of vowels present in a file. The program given below is the answer to this question:

print("Enter the Name of File: ")
fileName = str(input())
fileHandle = open(fileName, "r")
tot = 0
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']

for char in fileHandle.read():
  if char in vowels:
    tot = tot+1
fileHandle.close()

print("\nTotal Vowels are:")
print(tot)

Here is its sample run:

python count vowels in text file

Now enter the name of file say fresherearth.txt (a newly created file as early of this article) and press ENTER to count and print total number of vowels present in the content of this file as shown in the snapshot given below:

count vowels in text file python

Modified Version of Previous Program

Let's modify the previous program. This program uses end to skip printing of an automatic newline. The try-except block is used for exception handling.

print(end="Enter the Name of File: ")
fileName = str(input())
try:
  fileHandle = open(fileName, "r")
  tot = 0
  vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']

  for char in fileHandle.read():
    if char in vowels:
      tot = tot+1
  fileHandle.close()

  if tot>1:
    print("\nThere are " + str(tot) + " Vowels available in the File")
  elif tot==1:
    print("\nThere is only 1 Vowel available in the File")
  else:
    print("\nThere is no any Vowel available in the File!")
except IOError:
  print("\nError Occurred!")
  print("Either File doesn't Exist or Permission is not Allowed!")

Here is its sample run with same user input say fresherearth.txt as file's name:

count vowels in file python

Here is another sample run with user input say temp.txt (a non-existing file):

python count vowels in file

Count Consonant in Text File

The question is, write a program in Python that counts total consonants available in a text file. Here is its answer:

print(end="Enter the Name of File: ")
fileName = str(input())
try:
  fileHandle = open(fileName, "r")
  tot = 0
  vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']

  for char in fileHandle.read():
    if char>='a' and char<='z':
      if char not in vowels:
        tot = tot+1
    elif char>='A' and char<='Z':
      if char not in vowels:
        tot = tot+1

  fileHandle.close()

  if tot>1:
    print("\nThere are " + str(tot) + " Consonants available in the File")
  elif tot==1:
    print("\nThere is only 1 Consonant available in the File")
  else:
    print("\nThere is no any Consonant available in the File!")
except IOError:
  print("\nError Occurred!")

Here is its sample run with same file name say fresherearth.txt:

count consonants in file python

This program is similar to the previous program. The only difference is in logical code, we've changed the following code:

if char in vowels:
  tot = tot+1

with the block of code given below:

if char>='a' and char<='z':
  if char not in vowels:
    tot = tot+1
elif char>='A' and char<='Z':
  if char not in vowels:
    tot = tot+1

Count New Lines in Text File

To count the number of new lines in a text file, use following Python program:

print(end="Enter the Name of File: ")
fileName = str(input())
try:
  fileHandle = open(fileName, "r")
  tot = 0

  for char in fileHandle.read():
    if char=='\n':
      tot = tot+1
  fileHandle.close()

  if tot>1:
    print("\nThere are " + str(tot) + " New Lines available in the File")
  elif tot==1:
    print("\nThere is only 1 New Line available in the File")
  else:
    print("\nThere is no any New Line available in the File!")
except IOError:
  print("\nError Occurred!")

Here is its sample run with same file name as created earlier:

count lines in text file python

The only difference with this program to the program given to count vowels in text file is, we've changed the following block of code:

if char in vowels:
  tot = tot+1

with the block of code given below:

if char=='\n':
  tot = tot+1

Count Blank Spaces in Text File

This program counts total number of blank spaces available in a text file entered by user at run-time.

print(end="Enter the Name of File: ")
fileName = str(input())
try:
  fileHandle = open(fileName, "r")
  tot = 0

  for char in fileHandle.read():
    if char==' ':
      tot = tot+1
  fileHandle.close()

  if tot>1:
    print("\nThere are " + str(tot) + " Blank spaces available in the File")
  elif tot==1:
    print("\nThere is only 1 Blank space available in the File")
  else:
    print("\nThere is no any Blank space available in the File!")
except IOError:
  print("\nError Occurred!")

The snapshot given below shows the sample run of this program with again same file name, fresherearth.txt:

count blank space in text file python

Count Total Characters in Text File

This is the last program of this article. This program is created to count all the characters or total number of characters available in a text file.

print(end="Enter the Name of File: ")
fileName = str(input())
try:
  fileHandle = open(fileName, "r")
  tot = 0

  for char in fileHandle.read():
    if char:
      tot = tot+1
  fileHandle.close()

  if tot>1:
    print("\nThere are " + str(tot) + " Characters available in the File")
  elif tot==1:
    print("\nThere is only 1 Character available in the File")
  else:
    print("\nThe File is empty!")
except IOError:
  print("\nError Occurred!")

Here is its sample run:

count total characters in file python

Note - Out of 74 characters, there are 21 vowels, 39 consonants, 11 blank spaces, 2 new lines and 1 dot (.)

Python Online Test


« Previous Program Next Program »