Question:

Consider a binary file, items.dat, containing records stored in the given format: 
Write a function, Copy\_new(), that copies all records whose amount is greater than 1000 from items.dat to new\_items.dat.

Show Hint

Updated On: Jan 21, 2025
Hide Solution
collegedunia
Verified By Collegedunia

Solution and Explanation

Explanation:
import pickle

def Copy_new():
    # Open source file for reading
    with open("items.dat", "rb") as source_file:
        # Open destination file for writing
        with open("new_items.dat", "wb") as dest_file:
            try:
                while True:
                    # Load record from source file
                    record = pickle.load(source_file)
                    # Check if amount>1000
                    if record["amount"] > 1000:
                        # Write to destination file
                        pickle.dump(record, dest_file)
            except EOFError:
                pass  # End of file reached
The source file items.dat is opened in binary read mode ('rb'), and the destination file new_items.dat is opened in binary write mode ('wb'). Each record is read using pickle.load() and checked if the amount is greater than 1000. Records satisfying the condition are written to the destination file using pickle.dump().
Was this answer helpful?
0
0