繁体   English   中英

pickle.dumps() 是否有详细的日志记录模式?

[英]Is there a verbose logging mode for pickle.dumps()?

我尝试使用以下代码将大约 25000 张图像编码到泡菜文件中

f = open("dataset_encoding.pickle", "wb")
f.write(pickle.dumps(sampleDataset))
f.close()

Python 在我的 PC 上执行此 function 会花费大量时间, pickle.dumps()是否有详细的日志记录选项,所以我可以知道它仍在运行?

在这里找不到任何东西

正如评论中提到的,我试图腌制长度为 4 的列表。为了减少每个腌制文件的 memory 使用量,我决定将我的列表保存到 4 个不同的腌制中。 以下是我在酸洗完成时用于打印 ProgressBar 的代码:

import pickle

def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '█', printEnd = "\r"):
"""
Call in a loop to create terminal progress bar
@params:
    iteration   - Required  : current iteration (Int)
    total      - Required  : total iterations (Int)
    prefix    - Optional  : prefix string (Str)
    suffix    - Optional  : suffix string (Str)
    decimals    - Optional  : positive number of decimals in percent complete (Int)
    length    - Optional  : character length of bar (Int)
    fill        - Optional  : bar fill character (Str)
    printEnd    - Optional  : end character (e.g. "\r", "\r\n") (Str)
"""
    percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
    filledLength = int(length * iteration // total)
    bar = fill * filledLength + '-' * (length - filledLength)
    print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end = printEnd)
    if iteration == total: 
        print() 

def verbosePickle(data_list, filename, prefix_text):
    print("sampleDataset["+str(index)+"] Length :"+str(len(sample)))
    with open(filename, "wb") as f:
        pickle.dump(len(data_list), f)
        printProgressBar(0, len(data_list)-1, prefix = prefix_text, suffix = "Complete", length = 50)
        for data_index, data in enumerate(data_list):
            printProgressBar(data_index, len(data_list)-1, prefix = prefix_text, suffix = "Complete", length = 50)
            pickle.dump(data, f)

for index, sample in enumerate(sampleDataset):
    print("Saving Pickle Files")
    verbosePickle(sample, "sampleDataset"+index+".pickle", "Saving pickle "+index+" :")

标准 Output:

保存泡菜 0:|█████████████████████------------------------ -----| 44.0% 完成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM