Question: Variable Length Record 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
Variable Length Record
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.
CODE GIVEN:
# 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
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
