0
0
PythonHow-ToBeginner · 3 min read

How to Count Words in a File in Python Quickly

To count words in a file in Python, open the file with open(), read its content, split the text into words using split(), and then count the number of words with len(). This method reads the whole file as a string and counts words separated by spaces or new lines.
📐

Syntax

Here is the basic syntax to count words in a file:

  • open(filename, mode): Opens the file in read mode.
  • read(): Reads the entire file content as a string.
  • split(): Splits the string into a list of words based on whitespace.
  • len(): Counts the number of items in the list (words).
python
with open('filename.txt', 'r') as file:
    text = file.read()
    words = text.split()
    word_count = len(words)
    print(word_count)
💻

Example

This example shows how to count words in a file named sample.txt. It prints the total number of words found.

python
with open('sample.txt', 'r') as file:
    text = file.read()
    words = text.split()
    word_count = len(words)
    print(f"Total words: {word_count}")
Output
Total words: 9
⚠️

Common Pitfalls

Common mistakes when counting words in a file include:

  • Not closing the file after opening it (use with to avoid this).
  • Counting empty strings if splitting incorrectly.
  • Assuming punctuation is removed; split() does not remove punctuation, so words like "hello," count as one word including the comma.

To fix punctuation issues, you can clean the text before splitting.

python
import string

with open('sample.txt', 'r') as file:
    text = file.read()
    # Remove punctuation
    text = text.translate(str.maketrans('', '', string.punctuation))
    words = text.split()
    word_count = len(words)
    print(f"Total words without punctuation: {word_count}")
Output
Total words without punctuation: 9
📊

Quick Reference

Tips for counting words in files:

  • Use with open() to handle files safely.
  • Use split() to separate words by whitespace.
  • Clean punctuation if you want exact word counts.
  • For large files, consider reading line by line to save memory.

Key Takeaways

Use with open() to open and automatically close files safely.
Read the file content and split it with split() to get words.
Count words using len() on the list of split words.
Remove punctuation if you want a clean word count.
For big files, read line by line to avoid memory issues.