Write a function named repeat_words that takes two string parameters: 1. in_file: the name of an input file that exists before repeat_words is called 2. out_file: the name of an output file that repeat_words creates Assume that the input file is in the current working directory and write the output file to that directory. For each line of the input file, the function repeat_words should write to the output file all of the words that appear more than once on that line. Each word should be lower cased and stripped of leading and trailing punctuation. Each repeated word on a line should be written to the corresponding line of the output file only once, regardless of the number of times the word is repeated.

Respuesta :

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.

strip(string.punctuation)  strips every character of any leading or trialing punctuation.

lower()  converts string to lover case.

split() 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!

Ver imagen jehonor

In this exercise we have to use the knowledge of computational language in python to write the code.

This code can be found in the attached image.

To make it simpler the code is described as:

def repeat_words(firstFile, secondFile):

  infile_1=open(firstFile,'r')

  content1=infile_1.read()

  infile_1.close()

  import string

  newContent=""

  for char in content1:

      newContent+=char.strip(string.punctuation)

  newContent=newContent.lower()

  newContent=newContent.split()

  repeated_list=[]

  for word in newContent:

      if newContent.count(word)>1:

          repeated_list.append(word)

  new_repeat_list=[]

  for item in repeated_list:

     while item not in new_repeat_list:

        new_repeat_list.append(item)

  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

in_file = 'aa.txt'

out_file = 'cpu.txt'

print(repeat_words(in_file, out_file))

See more about python atbrainly.com/question/22841107

Ver imagen lhmarianateixeira