python多线程数据无法写入

发布于 2022-09-13 00:30:32 字数 247 浏览 14 评论 0

https://blog.csdn.net/lingyun...

为什么将第49行代码注释掉,就无法将数据写入1.txt?第66行代码传参给第68行也不行吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初与友歌 2022-09-20 00:30:32

这并不是玄学,你确定你把代码跑结束了,然后打开txt看过了,还是运行过程中查看txt,发现空白就说着是玄学了。我把你的两个while True改成for i in range(10),跑完打开txt,里面是有内容的。如果你要一边写入,一边打开txt看内容,你需要在write之后刷新缓冲区,fout.flush()。如果你强制关闭程序,缓冲区丢失,自然一片空白。

乖乖公主 2022-09-20 00:30:32

fout一直没有关闭,程序结束的地方把它关闭掉。

第50行write后,flush一下。按理说没有close也没有flush,你不注释49行应该也不会保存到文件。

最后,多线程传递文件对象不是个好办法,很容易输出混乱,最好加锁或者放queue。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文