本文将分享将字典保存到Python中的文件的详细内容,并且还将对替代pickle吗?进行详尽解释,此外,我们还将为大家带来关于C#:如何将字典保存到文本文件中?、Python2.x中如何使用pickl
本文将分享将字典保存到Python中的文件的详细内容,并且还将对替代pickle吗?进行详尽解释,此外,我们还将为大家带来关于C#:如何将字典保存到文本文件中?、Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象、Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象、python 3中的pickle和_pickle有什么区别?的相关知识,希望对你有所帮助。
本文目录一览:- 将字典保存到Python中的文件(替代pickle)吗?(python将字典保存在文件中)
- C#:如何将字典保存到文本文件中?
- Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象
- Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象
- python 3中的pickle和_pickle有什么区别?
将字典保存到Python中的文件(替代pickle)吗?(python将字典保存在文件中)
回答 我还是最后还是泡菜了
好的,因此我对另一个问题提出了一些建议,我被告知要使用咸菜将字典保存到文件中。
我试图保存到文件的字典是
members = {''Starspy'' : ''SHSN4N'', ''Test'' : ''Test1''}
泡菜将其保存到文件中时…这是格式
(dp0S''Test''p1S''Test1''p2sS''Test2''p3S''Test2''p4sS''Starspy''p5S''SHSN4N''p6s.
您能给我一种将字符串保存到文件的替代方法吗?
这是我想要保存的格式
成员= {‘Starspy’:’SHSN4N’,’Test’:’Test1’}
完整的代码:
import sysimport shutilimport osimport pickletmp = os.path.isfile("members-tmp.pkl")if tmp == True: os.remove("members-tmp.pkl")shutil.copyfile("members.pkl", "members-tmp.pkl")pkl_file = open(''members-tmp.pkl'', ''rb'')members = pickle.load(pkl_file)pkl_file.close()def show_menu(): os.system("clear") print "\n","*" * 12, "MENU", "*" * 12 print "1. List members" print "2. Add member" print "3. Delete member" print "99. Save" print "0. Abort" print "*" * 28, "\n" return input("Please make a selection: ")def show_members(members): os.system("clear") print "\nNames", " ", "Code" for keys in members.keys(): print keys, " - ", members[keys]def add_member(members): os.system("clear") name = raw_input("Please enter name: ") code = raw_input("Please enter code: ") members[name] = code output = open(''members-tmp.pkl'', ''wb'') pickle.dump(members, output) output.close() return members#with open("foo.txt", "a") as f:# f.write("new line\n")running = 1while running: selection = show_menu() if selection == 1: show_members(members) print "\n> " ,raw_input("Press enter to continue") elif selection == 2: members == add_member(members) print members print "\n> " ,raw_input("Press enter to continue") elif selection == 99: os.system("clear") shutil.copyfile("members-tmp.pkl", "members.pkl") print "Save Completed" print "\n> " ,raw_input("Press enter to continue") elif selection == 0: os.remove("members-tmp.pkl") sys.exit("Program Aborted") else: os.system("clear") print "That is not a valid option!" print "\n> " ,raw_input("Press enter to continue")
答案1
小编典典当今,最常见的序列化格式是JSON,JSON被普遍支持,并且非常清楚地表示简单的数据结构(如字典)。
>>> members = {''Starspy'' : ''SHSN4N'', ''Test'' : ''Test1''}>>> json.dumps(members)''{"Test": "Test1", "Starspy": "SHSN4N"}''>>> json.loads(json.dumps(members)){u''Test'': u''Test1'', u''Starspy'': u''SHSN4N''}
C#:如何将字典保存到文本文件中?
public static Dictionary<string,string> dict = new Dictionary<string,string>();
解决方法
var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(fileStream,dict);
还有一个XmlSerializer class.
Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象
python中有一个很方便的模块,叫做pickle,它可以将python对象序列化为字符串,并且可以将这个字符串反序列化为python对象。这个模块可以帮助我们在程序中保存数据和状态,便于以后的使用和恢复。接下来我将介绍如何使用pickle模块将字符串反序列化为python对象。
首先,我们需要导入pickle模块。在Python 2.x中,可以使用以下代码实现:
import pickle
接下来,我们需要定义一个字符串,这个字符串是我们要反序列化的对象。假设我们有以下字符串:
data_string = "(i13 (VHello, World! p0 ."
接着,我们可以使用pickle模块的loads函数将字符串反序列化为Python对象。代码示例如下:
data_object = pickle.loads(data_string)
在上面的示例代码中,data_string是我们要反序列化的字符串,而data_object是反序列化后的Python对象。
立即学习“Python免费学习笔记(深入)”;
点击下载“修复打印机驱动工具”;
接下来,我们可以对这个Python对象进行操作或者访问其属性。例如,我们可以直接打印这个Python对象的值:
print(data_object)
我们也可以访问Python对象的属性:
print(data_object[0]) print(data_object[1])
最后,当我们完成对Python对象的操作后,如果要将其再次序列化为字符串,可以使用pickle模块的dumps函数。示例代码如下:
data_string = pickle.dumps(data_object)
在上面的示例代码中,data_object是我们要序列化的Python对象,而data_string是序列化后的字符串。
综上所述,使用pickle模块将字符串反序列化为Python对象的过程是非常简单的。我们只需导入pickle模块,然后使用loads函数将字符串反序列化为Python对象,之后就可以对该对象进行操作。
总结一下,pickle模块是Python中非常有用的工具,它可以帮助我们在程序中保存数据和状态。通过pickle模块,我们可以将Python对象序列化为字符串,并且可以将这个字符串反序列化为Python对象。这使得我们能够方便地保存和恢复程序的状态。希望本文对你有所帮助!
以上就是Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象的详细内容,更多请关注php中文网其它相关文章!
Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象
python是一种广泛使用的高级编程语言,拥有强大的功能和丰富的库。其中,pickle模块是python标准库的一部分,它提供了一种简单的方法来序列化(将python对象转化为字节流)和反序列化(将字节流转化为python对象)python对象。本文将介绍如何在python 3.x中使用pickle模块将字符串反序列化为python对象,并附带代码示例。
在开始之前,我们需要先了解pickle模块的基本原理和一些注意事项。pickle模块使用了特定的算法将Python对象转化为字节流,并保存到磁盘或传输到其他计算机上。在反序列化时,pickle模块能够将字节流重新转化为Python对象。注意,pickle模块只能用于序列化Python内置的数据类型、自定义的类和函数。而对于一些外部的模块、文件句柄等,pickle模块是不能序列化的。
下面是一个简单的示例,展示了如何使用pickle模块将字符串反序列化为Python对象:
import pickle # 定义一个字符串 string_data = "Hello, World!" # 使用pickle模块将字符串序列化为字节流 byte_data = pickle.dumps(string_data) # 使用pickle模块将字节流反序列化为Python对象 object_data = pickle.loads(byte_data) # 打印反序列化后的Python对象 print(object_data)
在上述示例中,我们首先定义了一个字符串string_data,其中保存了"Hello,World!"这个字符串。然后,我们使用pickle.dumps(string_data)将该字符串序列化为字节流,并将结果保存在byte_data中。接着,我们使用pickle.loads(byte_data)将字节流重新反序列化为Python对象,并保存在object_data中。
最后,我们使用print(object_data)来打印反序列化后的Python对象。在这个示例中,我们希望输出的结果是"Hello, World!"。
立即学习“Python免费学习笔记(深入)”;
点击下载“修复打印机驱动工具”;
需要注意的是,pickle模块除了dumps()和loads()这对用于序列化和反序列化的函数,还提供了一些其他常用的函数,如dump()和load()用于将字节流保存到文件或从文件中读取字节流。此外,如果你需要序列化和反序列化自定义的类或函数,你需要在这些类或函数的定义中实现__getstate__和__setstate__这两个特殊方法。
综上所述,pickle模块是Python中用于序列化和反序列化的重要工具。它可以帮助我们将Python对象转化为字节流,以便在不同的环境中进行传输和保存。通过使用pickle模块,我们可以轻松地将字符串反序列化为Python对象,并对其进行操作和处理。
希望通过本文的介绍,读者能够掌握在Python 3.x中使用pickle模块将字符串反序列化为Python对象的方法,并能够灵活地应用到实际的项目开发中。
以上就是Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象的详细内容,更多请关注php中文网其它相关文章!
python 3中的pickle和_pickle有什么区别?
我是python的新手,想要实现 快速
对象序列化。我试图使用json,但是速度太慢,也试图使用marshall模块,但是由marshall序列化的对象的大小是pickle的6到7倍,所以我决定在我的项目中使用pickle。我读了有关cPickle模块的信息,读得很快,但是python
3中没有这样的模块,而文档说名为_pickle的模块是用C编写的。所以在我的项目中,我使用
import _pickle as pickle
pickle和_pickle有什么区别吗?我如何实现更快的对象序列化/反序列化?
今天关于将字典保存到Python中的文件和替代pickle吗?的分享就到这里,希望大家有所收获,若想了解更多关于C#:如何将字典保存到文本文件中?、Python 2.x 中如何使用pickle模块将字符串反序列化为Python对象、Python 3.x 中如何使用pickle模块将字符串反序列化为Python对象、python 3中的pickle和_pickle有什么区别?等相关知识,可以在本站进行查询。
本文标签: