当前位置: 首页 > 知识库问答 >
问题:

在Spyder中将大量内容打印到IPython控制台时出现关闭文件错误

耿永寿
2023-03-14

我的原始脚本比这个大,但是我发现仅仅这个就会导致完全相同的错误。第一个帖子在这里(我想)。所以如果格式不对,请道歉。

for a in range(4000):
    for b in range(200):
        print('4000:' + str(a))
        print('201:' + str(b))

我把这些都当成了错误。我是Ipython控制台的Spyder。

文件"",第1行,在runfile('C:/用户/我/文档/file.py',wdir='C:/用户/我/文档')

文件“C:\Users\me\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第714行,在runfile execfile(文件名,命名空间)中

文件“C:\Users\me\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第89行,在execfile exec中(compile(f.read(),filename,'exec'),命名空间)

文件“C:/Users/me/Documents/File.py”,第35行,打印('4000:'str(a))

文件“C:\Users\me\Anaconda3\lib\site packages\ipykernel\iostream.py”,第317行,在write self中_缓冲器写入(字符串

ValueError:对关闭的文件执行I/O操作

共有1个答案

百里鸿祯
2023-03-14

(这里是Spyder开发者)这个bug不是Spyder bug,而是一个ipykernelbug。它已在2016年8月发布的ipykernel4.4版中修复。

因此,请确保通过在终端中运行此命令(即cmd.exe)更新到最新的ipykernel

conda update ipykernel

注意:如果您也能更新到最新的Spyder版本就好了,因为您仍在使用2.3版,而我们的最新版本是3.1版。4.

 类似资料:
  • 我真的被困在作业的这一特定部分,它要求我将简单文本打印到控制台中,然后创建一个文件(无论主文件中的std::string文件名是什么),并将控制台的内容打印到该文件中。 我真的很困惑,因为该函数需要ostream,而且它还需要该函数使用任何文件名(在本例中是statistics.txt,只是为了测试该函数是否工作)。 函数是PrintStatistics。 我知道我可以使用cout在控制台上打印,

  • 问题语句:我有一个在Xcode中运行的程序,它有一堆print()语句,可以很好地将输出打印到调试控制台。然而,我希望也能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我,作为调试的一种方式。 SO上找到的解决方案使我可以将输出重定向到文件,但调试控制台输出将丢失。 问:我想要我的蛋糕和吃它。我希望能够将print()语句重定向到调试控制台和文件。 所以我有引用:https://st

  • 我假设eclipse中存在一些限制,阻止将大量数字打印到控制台。 编辑:在5572处,控制台的输出将被清除,这是输出: 你想看多少个素数?5572

  • 问题内容: 我的C程序粘贴在下面。在bash中,程序打印“ char is”,不打印Ω。我的语言环境均为en_US.utf8。 问题答案: 这很有趣。显然,编译器将omega从UTF-8转换为UNICODE,但libc某种程度上将其弄乱了。 首先:-format说明符期望一个(即使在wprintf -version 中也是如此),因此您必须指定(并因此指定字符串)。 其次,如果您像这样将语言环境设

  • 问题内容: 我想获得的的通过启动到控制台。如何才能做到这一点? 这是一些不完整的代码: 问题答案: 我最近遇到了这个问题,只想提及自从Java 7以来,流程构建器api已得到扩展。现在可以使用以下方法解决此问题:

  • } 这将打印[B@12843fce而不是预期的底层字节码结构。同样的操作可以在中找到,但在这里不能在中找到。我们真的需要这个来工作。你能发现哪里出了问题或者发生了什么吗?