Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please code in Python 3. Challenge: Load the pipe-delimited file P. It is organized with 3 fields on each line: firstname|lastname|birthday. Search for the firstname

Please code in Python 3. Challenge:

Load the pipe-delimited file P. It is organized with 3 fields on each line: firstname|lastname|birthday.

Search for the firstname F and lastname L, replacing the birthday with B. Write the file back out in the same pipe-delimited format.

My code:

# Get the filepath from the command line import sys P= sys.argv[1] F= sys.argv[2] L= sys.argv[3] B= sys.argv[4]

# ---------------------------------------------------------------- # # Our Helper functions: # # ----------------------------------------------------------------

# # Loads the file at filepath # Returns a 2d array with the data # def load2dArrayFromFile(filepath): # Your code goes here: with open(filepath, 'r') as rfile: lines = rfile.read().split(' ') while '' in lines: lines.remove('') loadedArray = [line.split('|') for line in lines] return loadedArray # Searches the 2d array 'records' for firstname, lastname. # Returns the index of the record or -1 if no record exists def findIndex(records, firstname, lastname): # Your code goes here: for line in records: if firstname == line[0] and lastname == line[1]: return records.index(line) return -1 # Sets the birthday of the record at the given index # Returns: nothing def setBirthday(records, index, newBirthday): # Your code goes here: line = records[index] line[2] = newBirthday records[index] = line # Convert the 2d array back into a string # Return the text of the 2d array def makeTextFrom2dArray(records): # Your code goes here: writer = str() for line in records: writer += "|".join(line) + " " return writer # ---------------------------------------------------------------- # # Our main code body, where we call our functions. # # ---------------------------------------------------------------- # Load our records from the file into a 2d array def main(): records= load2dArrayFromFile(P) # Find out which index, if any, has the name we are hunting indexWeAreHunting= findIndex(records, F, L) # Set the birthday record to the one we were passed if indexWeAreHunting!=-1: setBirthday(records, indexWeAreHunting, B) # Convert the records into a text string output= makeTextFrom2dArray(records) print(output[:-1]) # Your code goes here # write the text string out to the file wfile.write(output[:-1]) output= makeTextFrom2dArray(records) print(output[:-1]) # Your code goes here # write the text string out to the file with open(P,'w') as wfile: wfile.write(output[:-1]) main()

Expected Output:

Adam|Smith|11111985 Theodore|Anderson|20031990 Adam K|Smith|09091999 Monty|Biscuit-Barrel|18101980 Adam|Smithers|00000000 Ruthy|Anderson|06062010

My Output:

Adam|Smith|11111985 Theodore|Anderson|20031990 Adam K|Smith|09091999 Monty|Biscuit-Barrel|18101980 Adam|Smithers|10101960 Ruthy|Anderson|06062010

Please help, I don't understand what I am doing wrong.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

The Accidental Data Scientist

Authors: Amy Affelt

1st Edition

1573877077, 9781573877077

More Books

Students also viewed these Databases questions

Question

Know what customers expect from the firm when they complain.

Answered: 1 week ago

Question

Understand why customers complain.

Answered: 1 week ago