1
因此,我一直在研究這個用於大學作業的小程序,但是我需要醃製數據,但是,當我嘗試加載以前的數據並且修改它,程序不會修改已經存在的數據,而是忽略它,這裏是代碼。Python程序不會識別醃製數據,覆蓋現有文件
import pickle
diccActivos = {}
def guarda(nomArchGuardar,lista):
try:
f=open(nomArchGuardar,"wb")
print("Guardando el archivo"+" "+nomArchGuardar+"...")
pickle.dump(lista,f)
print("El archivo",nomArchGuardar,"ha sido guardado con éxito")
f.close()
except:
print("Error al grabar el archivo: ", nomArchGuardar)
def abre (nomArchLeer):
dicc={}
try:
f=open(nomArchLeer,"rb")
print("Cargando el archivo"+" "+nomArchLeer+"...")
dicc = pickle.load(f)
print("El archivo",nomArchLeer,"ha sido cargado con éxito")
f.close()
except:
print("Error al leer el archivo: ", nomArchLeer)
return dicc
#Definición de Funciones
def agregarActivo(diccActivos):
ubicacion=input("Ubicación: ")
descripcion=input("Descripción: ")
estado=input("Estado: ")
datosActivo=[descripcion,estado]
diccActivos[ubicacion]=datosActivo
guarda("activos",diccActivos)
return diccActivos
def mostrarActivo(diccActivos,ubicacion):
infoActivo=diccActivos[ubicacion]
print("Ubicación: ",ubicacion)
print("Descripción: ",infoActivo[0])
print ("Estado: ",infoActivo[1])
def eliminarActivo(diccActivos,ubicacion):
del(diccActivos[ubicacion])
#Guarda el diccionario en un archivo
guarda("activos",diccActivos)
def mostrarTodosActivos(diccActivos):
claves = list(diccActivos.keys())
for clave in claves:
mostrarActivo(diccActivos,clave)
print ("********************")
def menu():
diccCarros=abre ("activos")
while True:
print("\n--------------------------------\n")
print("1-Agregar Activo")
print("2-Mostrar Activo")
print("3-Eliminar Activo")
print("4-Mostrar Todos Los Activos")
print("5-Terminar")
print("\n--------------------------------\n")
opcion = int(input("Escoja una opción: "))
if opcion == 1:
agregarActivo(diccActivos)
elif opcion == 2:
ubicacion=input("Indique el código de ubicación del activo a mostrar: ")
mostrarActivo(diccActivos,ubicacion)
elif opcion == 3:
ubicacion = input("Indique el código de ubicación del activo a eliminar: ")
eliminarActivo(diccActivos,ubicacion)
elif opcion == 4:
mostrarTodosActivos(diccActivos)
elif opcion == 5:
#Guarda el diccionario en un archivo
guarda("activos",diccActivos)
break
else:
print("Opción no existente, inténtelo de nuevo")
menu()
#Programa Principal
menu()
功能「mostrarActivo」,例如,接收一個索引作爲一個變量,應打印一切,這是該索引,但是,如果你運行它不需額外打印任何東西,因爲它充當如果程序沒有什麼。
我知道這個問題可能是在「abre」函數中的某處,因爲它會將醃製文件加載到程序中,但是我不能完全弄清楚我做錯了什麼,這是第一次我曾與酸洗工作,所以我不知道我在做什麼。 請幫忙。