175k views
0 votes
Write a program that reads in your question #2 Python source code file and counts the occurrence of each keyword in the file. Your program should prompt the user to enter the Python source code filename

1 Answer

5 votes

Answer:

Here is the Python program:

import keyword #module that contains list of keywords of python

filename = input("Enter Python source code filename: ") # prompts user to enter the filename of a source code

code = open(filename, "r") # opens the file in read mode

keywords = keyword.kwlist #extract list of all keywords of Python and stored it into keywords

dictionary = dict() #creates a dictionary to store each keyword and its number of occurrence in source code

for statement in code: # iterates through each line of the source code in the file

statement = statement.strip() # removes the spaces in the statement of source code

words = statement.split(" ") #break each statement of the source code into a list of words by empty space separator

for word in words:# iterates through each word/item of the words list

if word in keywords:#checks if word in the code is present in the keywords list of Python

if word in dictionary: #checks if word is already present in the dictionary

dictionary[word] = dictionary[word] + 1 #if word is present in dictionary add one to the count of the existing word

else: #if word is not already present in the dictionary

dictionary[word] = 1 #add the word to the dictionary and set the count of word to 1

for key in list(dictionary.keys()): #iterates through each word in the list of all keys in dictionary

print(key, ":", dictionary[key])# prints keyword: occurrences in key:value format of dict

Step-by-step explanation:

The program is well explained in the comments attached with each line of the program.

The program prompts the user to enter the name of the file that contains the Python source code. Then the file is opened in read mode using open() method.

Then the keyword.kwlist statement contains the list of all keywords of Python. These are stored in keywords.

Then a dictionary is created which is used to store the words from the source code that are the keywords along with their number of occurrences in the file.

Then source code is split into the lines (statements) and the first for loop iterates through each line and removes the spaces in the statement of source code .

Then the lines are split into a list of words using split() method. The second for loop is used to iterate through each word in the list of words of the source code. Now each word is matched with the list of keywords of Python that is stored in keywords. If a word in the source code of the file is present in the keywords then that word is added to the dictionary and the count of that word is set to 1. If the word is already present in the dictionary. For example if there are 3 "import" keywords in the source code and if 1 of the import keywords is already in the dictionary. So when the second import keyword is found, then the count of that keyword is increased by 1 so that becomes 2.

Then the last loop is used to print each word of the Python that is a keyword along with its number of occurrences in the file.

The program and its output is attached in a screenshot. I have used this program as source code file.

Write a program that reads in your question #2 Python source code file and counts-example-1
User Un
by
6.4k points