青出于蓝 发表于 2020-5-22 20:10:30

关于字典的问题

open打开一个二进制下是一个字典的文件。哪种模式下(例如wb,r),才能在不删除原来字典的数据的轻快下,往字典添加内容?
如有表达不清楚,请回复~
急啊,求解决

Twilight6 发表于 2020-5-22 20:13:45

rb+

青出于蓝 发表于 2020-5-22 20:14:33

语文不好,表达的可能不太清楚。
就是open(‘文件’,’模式’)我要打开的是一个pkl文件,要求在不破坏原内容的情况下能打开并编辑文件。(注:这是个二进制文件)

青出于蓝 发表于 2020-5-22 20:15:08

Twilight6 发表于 2020-5-22 20:13
rb+

没看到,谢谢大佬!我试试

Twilight6 发表于 2020-5-22 20:15:15

青出于蓝 发表于 2020-5-22 20:14
语文不好,表达的可能不太清楚。
就是open(‘文件’,’模式’)我要打开的是一个pkl文件,要求在不破坏原 ...

就是 rb+ 这个啊 二进制读写模式

青出于蓝 发表于 2020-5-22 20:16:55

Twilight6 发表于 2020-5-22 20:15
就是 rb+ 这个啊 二进制读写模式

好像不行?还是我代码的问题,稍等,我贴代码

青出于蓝 发表于 2020-5-22 20:18:58

Twilight6 发表于 2020-5-22 20:15
就是 rb+ 这个啊 二进制读写模式

import pickle
print('永久储存内容输入地点!!!\n输入后不支持修改,请慎重填写!')
a=open('pickle_file.pkl','rb+')
b=str(input('请输入您要永久存储某人的名字:'))
c=str(input('请输入您要永久存储的某人相关信息:'))
city={b:c}
pickle.dump(city,a)
a.close()

当你运行编辑一次后,在运行编辑一次,第一次的内容就没有了

Twilight6 发表于 2020-5-22 20:19:03

青出于蓝 发表于 2020-5-22 20:16
好像不行?还是我代码的问题,稍等,我贴代码

好二进制打开的 就要以二进制写入才行的噢

Twilight6 发表于 2020-5-22 20:20:53

青出于蓝 发表于 2020-5-22 20:18
当你运行编辑一次后,在运行编辑一次,第一次的内容就没有了

你想要往文件里追加内容是吗?a 可以直接追加写入的

青出于蓝 发表于 2020-5-22 20:22:00

Twilight6 发表于 2020-5-22 20:20
你想要往文件里追加内容是吗?a 可以直接追加写入的

是的,我试试哈{:10_277:}

Twilight6 发表于 2020-5-22 20:22:43

青出于蓝 发表于 2020-5-22 20:22
是的,我试试哈

前提文件存在 否则报错的

青出于蓝 发表于 2020-5-22 20:22:49

Twilight6 发表于 2020-5-22 20:20
你想要往文件里追加内容是吗?a 可以直接追加写入的

ab还是ab+......

青出于蓝 发表于 2020-5-22 20:23:35

Twilight6 发表于 2020-5-22 20:22
前提文件存在 否则报错的

原文件存在,我想在原文件基础上添加文件内容~~

Twilight6 发表于 2020-5-22 20:25:29

青出于蓝 发表于 2020-5-22 20:23
原文件存在,我想在原文件基础上添加文件内容~~

那 直接 ab 就行了 不要那么麻烦 哈哈哈如果你要读取 在加个+就好了

Twilight6 发表于 2020-5-22 20:31:14

青出于蓝 发表于 2020-5-22 20:23
原文件存在,我想在原文件基础上添加文件内容~~


我纠正下我上面的错误,rb+ 会覆盖内容,只是是按行覆盖的 我自己测试了下 抱歉误导了你

青出于蓝 发表于 2020-5-22 20:32:07

Twilight6 发表于 2020-5-22 20:25
那 直接 ab 就行了 不要那么麻烦 哈哈哈如果你要读取 在加个+就好了

好像还不行,貌似是你理解错了....
假设我运行输入11,22    然后运行完毕
在运行输入111,222   运行完毕
在用load读取打印,看到的只有’111‘:‘222’。目标实现‘11’:’22‘和’111‘:’222‘都能打印出来~

青出于蓝 发表于 2020-5-22 20:33:05

pkl二进制文件的

青出于蓝 发表于 2020-5-22 20:35:31

Twilight6 发表于 2020-5-22 20:31
我纠正下我上面的错误,rb+ 会覆盖内容,只是是按行覆盖的 我自己测试了下 抱歉误导了你

如果不介意改一改我那乱糟糟的代码,可否改一改~

Twilight6 发表于 2020-5-22 20:39:21

青出于蓝 发表于 2020-5-22 20:35
如果不介意改一改我那乱糟糟的代码,可否改一改~

我现在才发现是用 pickle 模块 哈哈哈 抱歉请问ab+ 应该没问题了吧?

青出于蓝 发表于 2020-5-22 20:43:48

Twilight6 发表于 2020-5-22 20:39
我现在才发现是用 pickle 模块 哈哈哈 抱歉请问ab+ 应该没问题了吧?

当时脑积水,现在发现有不少问题。ab+是没有问题了,怎么添加pkl文件里字典的键与值呢?
页: [1] 2
查看完整版本: 关于字典的问题