Requisitos previos : archivo pickle
El módulo pickle de Python se utiliza para serializar y deserializar una estructura de objetos de Python. Cualquier objeto en Python se puede decapar para que se pueda guardar en el disco. Lo que hace pickle es que primero «serializa» el objeto antes de escribirlo en el archivo. El decapado es una forma de convertir un objeto de Python (lista, dictado, etc.) en un flujo de caracteres. La idea es que este flujo de caracteres contenga toda la información necesaria para reconstruir el objeto en otro script de python.
Pickle serializa un solo objeto a la vez y lee un solo objeto: los datos decapados se registran en secuencia en el archivo.
Si simplemente hace pickle.load, debería estar leyendo el primer objeto serializado en el archivo (no el último como lo ha escrito).
Después de deserializar el primer objeto, el puntero del archivo se encuentra al comienzo del siguiente objeto; si simplemente llama a pickle.load nuevamente, leerá el siguiente objeto; hágalo hasta el final del archivo.
Funciones utilizadas:
- dump() : se usa para escribir una representación encurtida de obj en el archivo de objeto de archivo abierto.
Sintaxis:
pickle.dump(obj, archivo, protocolo = Ninguno, *, fix_imports = Verdadero)
- load() : se usa para leer una representación de objeto en escabeche del archivo de objeto de archivo abierto y devolver la jerarquía de objeto reconstituida especificada.
Sintaxis:
pickle.load(archivo, *, fix_imports = Verdadero, codificación = “ASCII”, errores = “estricto”)
- seek (0): los registros de Pickle se pueden concatenar en un archivo, por lo que sí, puede simplemente pickle.load (f) varias veces, pero los archivos en sí no están indexados de una manera que le permita buscar en un registro determinado. Lo que está haciendo su f.seek(0) es buscar en el tercer byte del archivo, que se encuentra en medio de un registro pickle y, por lo tanto, no se puede seleccionar. Si necesita acceso aleatorio, es posible que desee buscar en el módulo de estantería incorporado que crea una interfaz similar a un diccionario encima de pickle utilizando un módulo de archivo de base de datos.
- truncar()- cambia el tamaño del archivo
A continuación se muestra la implantación para agregar a un archivo de salmuera.
Programa:
Python3
import pickle print("GFG") def write_file(): f = open("travel.txt", "wb") op = 'y' while op == 'y': Travelcode = int(input("enter the travel id")) Place = input("Enter the Place") Travellers = int(input("Enter the number of travellers")) buses = int(input("Enter the number of buses")) pickle.dump([Travelcode, Place, Travellers, buses], f) op = input("Dp you want to continue> (y or n)") f.close() print("entering the details of passengers in the pickle file") write_file()
Una vez que el archivo pickle se crea y se carga correctamente con los datos, se puede realizar la búsqueda.
Acercarse:
- Módulo de importación
- Abrir archivo de salmuera
- Tome algún elemento para basar la búsqueda
- Mostrar resultado si se encuentra
Programa:
Python3
import pickle print("GFG") def search_file(): f = open("travel.txt", 'rb') t_code = int(input("Enter the travel code to traveller : ")) while True: try: L = pickle.load(f) if L[0] == t_code: print("Place", L[1], "\t\t Travellers :", L[2], "\t\t Buses :", L[3]) break except EOFError: print("Completed reading details") f.close() print("entering the details of passengers in the pickle file") write_file() print("Search the file using the passenger Code") search_file()
Producción:
Publicación traducida automáticamente
Artículo escrito por rohit2sahu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA