gpt4 book ai didi

python - 带进度条的 pickle 转储

转载 作者:太空狗 更新时间:2023-10-29 21:56:50 41 4
gpt4 key购买 nike

我有一个非常大的 json 对象,我想将其转储到 pickle 文件中。有没有办法在使用 pickle.dump 时显示进度条?

最佳答案

您可以在读取文件时监控文件的进度(pickle 是否在解码之前读取整个文件是另一个问题)。

class TQDMBytesReader(object):

def __init__(self, fd, **kwargs):
self.fd = fd
from tqdm import tqdm
self.tqdm = tqdm(**kwargs)

def read(self, size=-1):
bytes = self.fd.read(size)
self.tqdm.update(len(bytes))
return bytes

def readline(self):
bytes = self.fd.readline()
self.tqdm.update(len(bytes))
return bytes

def __enter__(self):
self.tqdm.__enter__()
return self

def __exit__(self, *args, **kwargs):
return self.tqdm.__exit__(*args, **kwargs)

示例用法:

def test_tqdm_reader():
from pickle import Unpickler
with open("/tmp/list.pkl", "rb") as fd:
total = os.path.getsize("/tmp/list.pkl")
with TQDMBytesReader(fd, total=total) as pbfd:
up = Unpickler(pbfd)
obj = up.load()
print(f"Loaded {str(obj)}")

关于python - 带进度条的 pickle 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611840/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com