Answer:
#section 1
def repeat_words(firstFile, secondFile):
infile_1=open(firstFile,'r')
content1=infile_1.read()
infile_1.close()
#section 2
import string
newContent=""
for char in content1:
newContent+=char.strip(string.punctuation)
newContent=newContent.lower()
newContent=newContent.split()
#section 3
repeated_list=[]
for word in newContent:
if newContent.count(word)>1:
repeated_list.append(word)
#section 4
new_repeat_list=[]
for item in repeated_list:
while item not in new_repeat_list:
new_repeat_list.append(item)
#section 5
outfile=open(secondFile,'w')
for repeat in new_repeat_list:
outfile.write(repeat)
outfile.write('\n')
outfile.close()
infile_2=open(secondFile,'r')
content2=secondFile.read()
infile_2.close()
return content2
# section 6
in_file = 'aa.txt'
out_file = 'cpu.txt'
print(repeat_words(in_file, out_file))
Explanation:
#section 1
it defines a function that takes two arguments. It opens the first argument in the read mode and stores all it's content in a string variable "content1". finally the file is closed.
#section 2
In this section the string module is imported which allows for easy manipulation of string variables.
A new string variable is created that would store the already stripped file.
<em>strip(string.punctuation) </em>strips every character of any leading or trialing punctuation.
<em>lower() </em>converts string to lover case.
<em>split() </em>converts a string to an array of sub-string, i.e an array of words.
#section 3
This section collects all the words in the array and places them in a list.
#section 4
Utilizes a For and a While loop to ensure that no word repeats and stores it in a new list.
#section 5
Opens a new file and writes all the content into that new file and then closes the file.
re-opens the file, reads and returns the content of the file.
# section 6
This is added in order to test the function and print the result
I used your question to test the function and attached the result.
cheers!