Tengo problemas para cambiar un valor de dict y guardar el dict en un archivo de texto (el formato debe ser el mismo), solo quiero cambiar el member_phone
campo.
Mi archivo de texto tiene el siguiente formato:
memberID:member_name:member_email:member_phone
y dividí el archivo de texto con:
mdict={}
for line in file:
x=line.split(':')
a=x[0]
b=x[1]
c=x[2]
d=x[3]
e=b+':'+c+':'+d
mdict[a]=e
Cuando trato de cambiar el member_phone
almacenado en d
, el valor ha cambiado no fluye por la clave,
def change(mdict,b,c,d,e):
a=input('ID')
if a in mdict:
d= str(input('phone'))
mdict[a]=b+':'+c+':'+d
else:
print('not')
y cómo guardar el dict en un archivo de texto con el mismo formato?
fuente
save_obj
parece requerir que el archivoobj/'+ name + '.pkl
ya exista. Creé un diccionario llamadoQ
, lo poblé e hice la llamadasave_obj(Q, "Qtable")
Recibí un error:FileNotFoundError: [Errno 2] No such file or directory: 'obj/Qtable.pkl'
¿Cómo se crea el archivo en primer lugar antes de escribir en él?wb+
para crear el archivo, es decir:with open('obj/'+ name + '.pkl', 'wb+')
+
a al modo no tendrá ningún efecto en su problema (andrey.s es incorrecto). Su problema parece que se debe a una o dos cosas. Parasave_obj()
que funcione en esta respuesta, ya"obj"
debe existir un subdirectorio llamado porqueopen()
no creará uno automáticamente. En segundo lugar, el primer argumentosave_obj()
es el objeto Python que se va a guardar, no el nombre del subdirectorio (aunque no está del todo claro qué quería decir conQ
en lasave_obj(Q, "Qtable")
llamada de ejemplo ). Puede crear un directorio si aún no existeos.mkdir()
.