如何在不重新启动Python的情况下清空缓冲区

时间:2019-04-26 16:09:22

标签: python python-3.x

我正在使用Python 3.6.3

我的脚本仍然存在问题,可以完全正常运行。

主要模块是 pandas xslxwriter (带有 easygui (用于GUI)。

此脚本可以从一个主文件(Excel 2010)中生成数十个Excel文件(使用 xlsxwriter ),每个文件可以包含数百列数据(取决于主文件的参数)。

缩进,逻辑和结果都可以。

但是最后一个Excel文件未提交到磁盘,我必须重新启动Python才能获取它。

例如,如果一次运行产生100个文件,则磁盘上将只写入99个文件。最后一个已计算,但不可见。

如果未重新启动Python,则该文件将在下一次脚本运行开始时写入磁盘。

我发现可能是 flush 问题,并尝试了一些解决方案,但此问题仍然存在。

是否有一些技巧可以强制使用缓冲区?我不允许在专业计算机上修改环境变量。

感谢您的帮助和时间:)

1 个答案:

答案 0 :(得分:0)

谢谢马克·托隆宁

您是对的:该文件未正确关闭,这是因为我出错了。

我的代码很难概括,我无法发布脚本的简历

首先,关键字 continue (用于主循环)的缩进方式很糟糕,我将其替换在正确的位置。

但是在此关键字之前,我正在使用 workbook.close 关闭 xlsxwriter 文件(脚本中只有一个用于主循环)。

但是在运行时没有提到这是一个错误

如上我的问题中所述,每个 xlsxwriter 文件都已提交到磁盘,除了最后一个。

然后我查看了https://xlsxwriter.readthedocs.io/workbook.html上的文档,并发现关闭worbook时缺少括号。

通过添加缺少的括号进行更正: workbook.close (),现在一切都很好:)

我想分享这些信息,因为有些人可能遇到相同的问题。

非常感谢您 progmatico 获取有关 flush 属性的信息。

法国巴黎的问候:)