मराठी

Write a program to read a file 'Story.txt' and create another file, storing an index of Story.txt telling which line of the file each word appears in.

Advertisements
Advertisements

प्रश्न

Write a program to read a file 'Story.txt' and create another file, storing an index of Story.txt telling which line of the file each word appears in. If word appears more than once, then index should show all the line numbers containing the word.

Hint : Dictionary with key as word(s) can be used to solve this.

कोड लेखन
Advertisements

उत्तर

import re
from collections import defaultdict

def create_word_index():
    index = defaultdict(set)

    with open("Story.txt", "r") as file:
        for line_number, line in enumerate(file, start=1):
            words = re.findall(r"[A-Za-z]+", line.lower())
            for word in words:
                index[word].add(line_number)

    with open("StoryIndex.txt", "w") as file:
        for word in sorted(index):
            line_numbers = ", ".join(
                str(number) for number in sorted(index[word])
            )
            file.write(f"{word}: {line_numbers}\n")

create_word_index()

A set prevents the same line number from being repeated when a word occurs more than once on that line.

shaalaa.com
  या प्रश्नात किंवा उत्तरात काही त्रुटी आहे का?
पाठ 7: Data File Handling - EXERCISE [पृष्ठ १४६]

APPEARS IN

सीबीएसई Computer Science with Python [English] Class 12
पाठ 7 Data File Handling
EXERCISE | Q 18. | पृष्ठ १४६
Share
Notifications

Englishहिंदीमराठी


      Forgot password?
Use app×