【问题标题】:Any way to clear python's IDLE window?有什么方法可以清除 python 的 IDLE 窗口?
【发布时间】:2010-11-28 18:47:36
【问题描述】:

我知道有一个关于python控制台的类似主题,但我不知道它们是否相同。我尝试了 system("clear") ,但它在这里不起作用。

如何清除python的IDLE窗口?

【问题讨论】:

  • 它不是重复的,OP是询问如何清除IDLE shell,而不是控制台
  • 这不起作用的原因是 Python 启动了一个新的 shell 会话并在那里运行命令 clear。它还解释了为什么cd 在system.os 中不起作用。
  • 按住ctrl + j一会然后回车,这样是最好的办法
  • @ytpillai,啊,但这给了我底部的提示。毫无疑问,这是一个解决方案,但仍然会带来一些便利。
  • 不是一个解决方案,但对于其他好奇的人来说,IDLEX 扩展用于清除控制台的EditorWindow 对象似乎可以在 IDLE 中使用(在提示符下)inspect.currentframe().f_back.f_locals['self'].rpchandler.console 访问,虽然任何涉及text 属性的东西都会锁定控制台,所以它没有多大帮助。

标签: python python-idle


【解决方案1】:

os.system('clear') 在 Linux 上工作。如果您正在运行 Windows,请尝试使用 os.system('CLS')。

你需要先像这样导入操作系统:

import os

【讨论】:

  • os.system('CLS') 在 Windows 中工作。 (Python 2.6)。结果屏幕被清除,只显示一个“0”,我假设它是 CLS 的返回值,在顶部。下一行有 >>> 提示符。
  • 这会在外部命令提示符下对 cls 进行 os 调用,并且不会与 Idle 交互
  • idle 不是控制台窗口。 clear 和 cls 都在控制台/终端窗口上运行。
  • 问题是'clear screen IN IDLE'上述方法在我的电脑上肯定不起作用
  • 为什么要投票?这将打开一个新的命令提示符,清除它并关闭它
【解决方案2】:

在 Python 2.4+ 中执行命令的方式是使用 subprocess 模块。你可以像使用os.system一样使用它。

import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows

如果您在 python 控制台中执行此操作,则需要执行一些操作来隐藏返回值(对于 os.system 或 subprocess.call),例如将其分配给变量:

cls = subprocess.call("cls", shell=True)

【讨论】:

  • 回溯(最近一次调用):文件“”,第 1 行,在 subprocess.call("cls") 文件“C:\Python26\lib\subprocess .py”,第 444 行,在调用中 return Popen(*popenargs, **kwargs).wait() 文件“C:\Python26\lib\subprocess.py”,第 595 行,在 init 错误读取, errwrite) File "C:\Python26\lib\subprocess.py", line 804, in _execute_child startupinfo) WindowsError: [Error 2] System cannot find the specified file
  • 嗯.. 这就是我不使用 Windows 的结果,因此无法对其进行测试。试试 subprocess.call("cls", shell=True)
【解决方案3】:

“cls”和“clear”是清除终端(即DOS 提示符或终端窗口)的命令。从您的屏幕截图中,您正在 IDLE 中使用 shell,它不会受到此类事情的影响。不幸的是,我认为没有办法在 IDLE 中清除屏幕。你能做的最好的就是向下滚动屏幕很多行,例如:

print ("\n" * 100)

虽然你可以把它放在一个函数中:

def cls(): print ("\n" * 100)

然后在需要时调用它为cls()

【讨论】:

  • 它确实清除了屏幕,但你仍然会得到提示>>>“在最后一行而不是在顶部,我想这会降低它的效率......仍然+1清除屏幕
  • Python 3.4.2 - 我必须将 "\n" 和 * 100 括在括号中,所以:print ("\n" * 100)
  • 这不会清除屏幕,我仍然可以向上滚动!
  • ctrl + j 也可以。可能有用,包括那个。 stackoverflow.com/a/11993793/4871483
  • Python shell 说压缩文本 100 行 @Brian
【解决方案4】:

似乎没有办法清除 IDLE 'shell' 缓冲区。

【讨论】:

【解决方案5】:

正如mark.ribau所说,似乎没有办法清除空闲的Text小部件。应该编辑 EditorWindow.py 模块并在 EditorWindow 类中添加一个方法和一个菜单项,该类执行如下操作:

self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")

也许还有一些我不知道的标签管理。

【讨论】:

    【解决方案6】:

    文件 -> 新窗口

    在新窗口中**

    运行 -> Python Shell

    这个方法的问题是它会清除所有你定义的东西,比如变量。

    或者,您应该只使用命令提示符。

    打开命令提示符

    键入“cd c:\python27”

    type "python example.py" ,当它不处于交互模式时,您必须使用 IDLE 编辑它。如果你在 python shell 中,文件 -> 新窗口。

    请注意,example.py 需要与 C:\python27 或您安装了 python 的任何目录位于同一目录中。

    然后,您只需按键盘上的向上箭头键即可。您只需编辑 example.py,使用 CTRL + S,然后返回命令提示符,按向上箭头键,按 Enter。

    如果命令提示符太拥挤,只需键入“clr”

    “clr”命令仅适用于命令提示符,不适用于 IDLE。

    【讨论】:

    • 只是说,但我相信问题是在问'如何从 Python 脚本内部空闲时清除屏幕。
    • 开始新文件并在其中运行 Python shell 似乎是我唯一可用的选项,没有其他方法。谢谢!
    【解决方案7】:

    可以在Issue6143 中找到用于清除外壳的扩展,作为“功能请求”。此扩展程序包含在 IdleX 中。

    【讨论】:

    • 这是对 Python Idle 的出色扩展。非常感谢!
    【解决方案8】:
    >>> import os
    
    >>>def cls():
    ...    os.system("clear")
    ...
    >>>cls()
    

    这样做是完美的。也没有打印“0”。

    【讨论】:

    • 很好,很简单,照它说的做。或者在import os 之后输入os.system("clear"),如果你经常需要清屏,这个功能很方便。
    • os.system("clear") 工作。这对我有用,但我必须输入“cls()”
    • 当我尝试这个时,命令行返回 并且控制台没有清除
    • 迄今为止的最佳答案
    • @ericgrosse 你需要输入 cls(),而不是 cls
    【解决方案9】:

    无需编写您自己的函数来执行此操作! Python 有一个内置的 clear 函数。

    在命令提示符下键入以下内容:

    shell.clear()
    

    如果在 Windows 上使用 IPython,则为

    cls()
    

    【讨论】:

    • 这样做是否需要某种导入,因为它对我不起作用。如果涉及导入,您应该将其放入您的回复中。另外,问题是关于清除提示 IN IDLE.
    【解决方案10】:

    在 Windows 上执行此操作的最佳方法是使用命令提示符 'cmd' 并访问 python 目录,命令提示符可以在开始菜单中找到 >run>cmd

    C:\>cd Python27
    C:\Python27>python.exe
    Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license()" for more information.
    >>>import os
    >>>os.system('cls')  #This will clear the screen and return the value 0
    

    【讨论】:

    • 只是说,但我相信问题是在问'如何在空闲时清除屏幕'。 (强调IN IDLE)
    【解决方案11】:

    您可以制作AutoHotKey 脚本。

    将 ctrl-r 设置为清除 shell 的热键:

    ^r::SendInput print '\n' * 50 {Enter}
    

    只需安装 AutoHotKey,将上面的内容放在一个名为 idle_clear.ahk 的文件中,运行该文件,您的热键就处于活动状态。

    【讨论】:

      【解决方案12】:

      这在 Windows 中适用于我:

      print chr(12)

      【讨论】:

      • chr 在 IDLE 终端中无法识别
      • 谢谢乔尔。也为我工作。
      • 在 Windows、Spyder IDE 中也适用于我,并且似乎是实现所需结果的最简单代码。 {chr(12) 是换页}
      【解决方案13】:

      大部分答案,这里都是用清除命令清除DOS提示屏幕,这不是问题。这里的其他答案是打印空白行以显示屏幕的清除效果。

      这个问题最简单的答案是

      没有一些外部模块集成是不可能清除python IDLE shell的。如果你真的想得到一个空白的全新 shell,只需关闭之前的 shell 并再次运行它即可

      【讨论】:

      • 这是对这个问题的一个很好的、直接的、实用的答案;关闭空闲,保持文件打开,再次运行文件,空闲现在有一个新屏幕。
      • @Mike_K,它可能很有用,但永远不会。现在我有一个分屏(一本书空闲)。当我重新执行空闲时,新屏幕进入默认位置/尺寸。所以,它会变得很无聊。
      • 所以,他们没有实现最简单的东西。它不一定是命令,而是视图菜单中的按钮。
      【解决方案14】:

      使用这个

      for num in range(1,100):
          print("\n")
      

      【讨论】:

      • 有效,但如果您想查看之前的内容,滚动距离会非常长。
      • 尝试缩小范围(1,10):
      • @Xenon 但是如果这个想法是清除窗口,那么用户应该无法查看之前的内容。
      【解决方案15】:

      ctrl + L 在 Ubuntu Linux 上清除屏幕。

      【讨论】:

      • Red Hat/Fedora/CentOS 上也有
      • 如果您使用 IDLEx,也可以在 Windows 上。干杯!很高兴终于得到了一个简单的解决方案!
      • 不适用于 Ubuntu 18.04。更糟糕的是多次使用CTRL + J。
      • @slinstj 在 Windows 上完全关闭它
      • 添加到我今天的 hack 中!在 MacOS 中也能像魅力一样工作!
      【解决方案16】:

      我喜欢用:

      import os
      clear = lambda : os.system('cls') # or clear for Linux
      
      clear()
      

      【讨论】:

      【解决方案17】:

      这些解决方案在 Windows 7 和 IDLE 中都不适合我。使用 PowerShell 结束,在其中运行 Python 并退出以在 PowerShell 中调用“cls”以清除窗口。

      缺点:假设 Python 已经在 PATH 变量中。此外,这确实会清除您的 Python 变量(尽管重新启动 shell 也是如此)。

      优点:保留您所做的任何窗口自定义(颜色、字体大小)。

      【讨论】:

        【解决方案18】:

        似乎没有任何外部库是不可能做到的。

        如果您使用的是 windows 并且不想每次都打开和关闭 shell,那么另一种方法是使用 windows 命令提示符。

        • 键入python 并按回车键将Windows 命令提示符转为python 空闲(确保已安装python)。

        • 输入 quit() 并按回车键将其返回到 Windows 命令提示符。

        • 键入cls 并回车以清除命令提示符/Windows shell。

        【讨论】:

          【解决方案19】:

          我建议您将 Thonny IDE 用于 Python。它的外壳具有“清除外壳”选项,您还可以跟踪在单独列表中创建的变量。即使与现代 IDE 相比,它的调试也非常好。您还可以在 python 文件中编写代码以及在同一位置访问 shell。

          而且它很轻!

          【讨论】:

            【解决方案20】:

            "command + L" 适用于 MAC OS X。

            "control + L" 用于 Ubuntu

            清除交互会话的最后一行

            【讨论】:

            • 我不知道这个功能,谢谢总是写你的命令。
            【解决方案21】:

            似乎没有直接清除 IDLE 控制台的方法。

            我这样做的一种方法是使用 exit() 作为我的 python 脚本 (.py) 中的最后一个命令。当我运行脚本时,它总是会打开一个新的控制台并在退出前提示。

            优势:每次执行脚本时都会重新启动控制台。 缺点:每次执行脚本时都会重新启动控制台。

            【讨论】:

              【解决方案22】:

              乌龟可以清屏。

              #=====================================
              import turtle
              
              wn = turtle.Screen()
              wn.title("Clear the Screen")
              
              t = turtle.Turtle()
              t.color('red', 'yellow')
              t.speed(0)
              
              #=====================================
              
              def star(x, y, length, angle):
                  t.penup()
                  t.goto(x, y)
                  t.pendown()
                  t.begin_fill()
                  while True:
                      t.forward(length)
                      t.left(angle)
                      if t.heading() == 0: #===============
                          break
                  t.end_fill()
              #=====================================
              #   (  x,    y,  length, angle)
              star(-360,  0,    150,    45)
              t.clear()
              #=====================================
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2023-03-23
                • 1970-01-01
                • 2016-01-20
                • 2012-05-10
                • 2014-09-08
                • 1970-01-01
                • 2022-01-06
                • 2011-05-02
                相关资源
                最近更新 更多