【问题标题】:Python: Save objects in a filePython:将对象保存在文件中
【发布时间】:2016-02-21 18:47:45
【问题描述】:

我已经定义了这个类:

class User():
 def __init__(self, ip, update, priority):
    self.ip = ip
    self.update = update
    self.priority = priority

我使用 Socket,每次连接一个客户端时,我都会创建一个 User 对象。我想将它保存在某个地方,然后能够处理它的数据,这意味着读取它保存的文件。 我不知道该怎么做。我尝试使用 txt 文件,但 User 类的字段很复杂,我还想要一些更动态的东西,比如

add(user), isPresent(user), overwrite(user)

我的情况最好的解决方案是什么?

【问题讨论】:

  • 要么连接到数据库,要么使用 pickle 并将您的信息放入可以保存和阅读以更新的字典中
  • 你有使用数据库的例子吗?
  • 不是真的 - 这更复杂,但网上有例子,试试谷歌“python数据库”
  • 有很完整的答案here。

标签: python class object serialization


【解决方案1】:

如果你的 User 类真的这么简单,你可以使用 Pickle:

(包括 Python 2 和 3 链接)。

 u = User(127.0.0.1, "foo", "bar")
 pickle.dumps(u)

【讨论】:

  • 谢谢。如果我保存两次相同的对象会发生什么?只有一两个实体?
  • @m.ridolfi - 据我所知,Pickle 应该是幂等的。所以多次保存同一个对象会得到相同的结果。现在,当然,您必须选择 将对象保存在哪里(文本文件、数据库等),所以如果您要问是否可以物理地 保存同一个对象两次,这完全取决于你。
猜你喜欢
  • 2013-12-30
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 2013-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多