【问题标题】:Can I save a pickle file that has lost its last lines? [closed]我可以保存丢失了最后几行的泡菜文件吗? [关闭]
【发布时间】:2022-10-12 22:20:47
【问题描述】:

我有一个类对象列表。它们存储在 pickle 文件中。 4500 行中的最后 100 行左右已被删除。现在有什么办法可以解压文件吗?我已经投入了至少 100 个小时的数据录入,我充满了悲伤。如果可以的话请帮忙。

编辑要简洁:我在记事本中打开了腌制文件,并从文件末尾删除了许多字符。由于此操作,整个文件铺位了吗?我有时间处理情绪。我必须重新开始吗?

【问题讨论】:

  • Pickle 文件是二进制文件; “线条”在这里不是有意义的度量。文件到底发生了什么?
  • 我想我可以编辑包含在泡菜文件中的不正确的字符串。我在记事本中打开了文件,在一些字符串中看到了拼写错误。用连字符代替空格。我编辑了两个连字符。然后尝试解开文件。这失败了。我将连字符改回空格,pickle.load 再次失败。连字符在 EOF 附近,所以我系统地开始删除文件的最后一个字符并每次尝试 pickle.load,假设我最终会达到一个点,即文件不会被我的编辑和可读性所触及,这一切都失败了,我来到了这里。
  • 同样,泡菜是不是文本文件.在文本编辑器中修改它会破坏它,超出任何合理的恢复希望;事实上,仅仅重新保存它而不修改它可能会破坏它。

标签: python pickle pickler


【解决方案1】:

取决于它的损坏程度,您可能可以执行类似的操作

unpickler = pickle._Unpickler(open(pickle_file,"rb"))
try:
    data = unpickler.load()
except:
    print(unpickler.metastack)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 2017-09-01
    • 2020-10-26
    • 1970-01-01
    相关资源
    最近更新 更多