Answer:
Here is the Python code.
import csv
inputfile = input("Enter name of the file: ")
count = {}
with open(inputfile, 'r') as csvfile:
csvfile = csv.reader(csvfile)
for line in csvfile:
for words in line:
if words not in count.keys():
count[words] = 1
else:
count[words] + 1
print(count)
Explanation:
I will explain the code line by line.
import csv here the css is imported in order to read the file using csv.reader() method
inputfile = input("Enter name of the file: ") This statement takes the name of the input file from the user
count = {} this is basically a dictionary which will store the words in the file and the number of times each word appears in the file.
with open(inputfile, 'r') as csvfile: This statement opens the inputfile using open() method in read mode. This basically opens the input file as csv type
csvfile = csv.reader(csvfile) This statement uses csv.reader() method to read the csv file contents.
for line in csvfile: This outer for loop iterates through each line of the file
for words in line: This inner loop iterates through each word in the line
if words not in count.keys(): This if condition checks if the word is not in the dictionary already. The dictionary holds key value pair and keys() method returns a list of all the keys of dictionary
count[words] = 1 if the word is not present already then assign 1 to the count dictionary
co
unt[words] + 1 if the word is already present in dictionary increment count of the words by 1. Suppose the input file contains the following words:
hello,cat,man,hey,dog,boy,Hello,man,cat,woman,dog,Cat,hey,boy
Then because of co
unt[words] + 1 statement if the word appears more than once in the file, then it will not be counted. So the output will be:
{' cat': 1, ' man': 1, ' dog': 1, ' woman': 1, ' Hello': 1, ' hey': 1, ' boy': 1, 'hello': 1, ' Cat': 1}
But if you want the program to count those words also in the file that appear more than once, then change this co
unt[words] + 1 statement to:
count[words] = count[words] + 1
So if the word is already present in the file its frequency is increased by 1 by incrementing 1 to the count[words]. This will produce the following output:
{' Cat': 1, ' cat': 2, ' boy': 2, ' woman': 1, ' dog': 2, ' hey': 2, ' man': 2, ' Hello': 1, 'hello': 1}
You can see that cat, boy, dog and hey appear twice in the file.
print(count) This statement prints the dictionary contents with words and their frequencies.
The program with its output is attached.