python dill包_Python脚本卡在dill.dump()上

我正在使用Python 3和Discord.py API包装器(使用asyncio)编写discord bot . 我正在运行一个Web服务器来处理主线程中的Atom Feed Notifications和第二个线程中的discord客户端 .

我正在使用dill来保存自定义类的字典 . 当机器人收到包含有效命令的聊天消息(字典中的某些更改)时,该函数由discord客户端(线程2)运行 .

该脚本似乎陷入 dill.dump() :

功能

def save_object(obj, filename):

f = open(filename, "wb")

print("Opened file.")

dill.dump(obj, f)

print("Dumped to file.")

f.close()

print("Closed file.")

return

def load_object(filename):

f = open(filename, "rb")

obj = dill.load(f)

f.close()

return obj

调用函数

...

print('Saving Streamers')

save_object(Streamers, "streamers.dat")

print('Saving Youtubers')

save_object(Youtubers, "youtubers.dat")

我意识到通过使用 with 块可以使代码看起来更好(并且可能工作效率更高),这仅仅是一个测试版本(因此也是打印语句的加载) . 我运行时收到的输出是:

Saving Streamers

Opened file.

***NOTHING ON THIS LINE***

我没有得到任何类型的错误消息,脚本只是停止在该行输出和冻结类型 .

该文件在文件资源管理器中可见,但包含0个字节 .

当我用 CTRL+C 强制退出脚本时,文件最终保存 .

当我在python3解释器中手动运行此代码片段时,它工作正常(从相同的工作目录,由于脚本由root运行,因此存在读写权限) .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值