Dado un archivo binario que contiene algunas oraciones (palabras separadas por espacios), escribamos un programa en Python para modificar o alterar cualquier palabra en particular de la oración.
Enfoque:
Paso 1: Búsqueda de la palabra en el archivo binario.
Paso 2: mientras busca en el archivo, la variable «pos» almacena la posición del registro del puntero del archivo y luego recorre (continúa) la lectura del registro.
Paso 3: Si la palabra a buscar existe, coloque el puntero de escritura (al final del registro anterior), es decir, en la pos.
Paso 4: Llame a la función write() para tomar el nuevo registro.
Paso 5: escriba el nuevo objeto en la posición «pos» y, por lo tanto, el registro se actualiza e imprime «registro actualizado con éxito».
Paso 6: Si la palabra no existe, imprima «registro no encontrado».
Implementación
Supongamos que el contenido del archivo binario es:
Python3
# Python program to modify the # content of binary file # Function to update the # content of binary file def update_binary(word, new) # string variable to store # each word after reading # from the file string = b"" # Flag variable to check # if the record is found or # not Flag = 0 # Open the file in r + b mode which means # opening a binary file for reading and # writing with open('file.txt', 'r + b') as file: pos = 0 # Reading the content of the # file character by character data = string = file.read(1) # Looping till the end of # file is reached while data: data = file.read(1) # Checking if the space is reached if data == b" ": # checking the word read with # the word entered by user if string == word: # Moving the file pointer # at the end of the previously # read record file.seek(pos) # Updating the content of the file file.write(new) Flag = 1 break else: # storing the position of # current file pointer i.e. at # the end of previously read record pos = file.tell() data = string = file.read(1) else: # Storing the data of the file # in the string variable string += data continue if Flag: print("Record successfully updated") else: print("Record not found") # Driver code # Input the word to be found # and the new word word = input("Enter the word to be replaced: ").encode() new = input("\nEnter the new word: ").encode() update_binary(word, new)
Producción:
Archivo de texto:
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA