gpt4 book ai didi

python - 如何在 Python IDLE Shell 中获取终端高度(以行为单位)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:20 24 4
gpt4 key购买 nike

我正在用 Python 3.5 创建一个 Hangman 游戏。我正在尝试创建一个清除控制台窗口的函数,我可以通过在 Windows 上使用 os.system("cls") 或在 macOS、Linux 等上使用 os.system("clear") 轻松完成此操作。但是,当在 IDLE Shell 中运行脚本时,这些命令不起作用,因此我尝试打印一系列换行符来隐藏以前的所有内容。

我正在努力寻找 IDLE Shell 的行高度。我尝试过 os.get_terminal_size()[1] 但这给出了错误“ValueError:错误的文件描述符”。

这是我当前的代码:

def clear():
"""Clears the console window.

Executes the 'cls' command when running on Windows, or 'clear' on
other platforms (e.g. Linux, macOS). IDLE shell cannot clear, so
prints newlines instead.
"""
if "idlelib.run" in sys.modules:
# If running in IDLE.
print("\n" * os.get_terminal_size()[1])
elif platform.system() == "Windows":
# If running in Windows terminal.
os.system("cls")
else:
# If running in other terminals (Linux, macOS)
os.system("clear")

我如何在行中找到 IDLE Shell 大小?提前致谢。

最佳答案

你的问题是双重的。 1. 20 年前,IDLE 是为开发程序而设计的,而不是为运行程序的用户而设计的。 2. 重要的是,os 和shutil 被设计为与实际的文本终端(具有固定的行数和列数)或与模仿此类的程序一起工作。它们并不是为与 GUI 框架交互而设计的。为此有单独的模块。

你能做什么。

  1. 让用户在系统终端上运行您的程序(通常的默认设置)。对于开发,请打印类似 "\n**clear screen**\n" 的内容,以向开发人员发出信号,表明屏幕通常会被清除。

  2. 在 IDLE 分支中,print('\n'*N),其中 N 是 75,通常应该足够了。或者使用较小的数字并告知用户您的程序假设窗口最多为 N 行。

  3. 了解足够的 tkinter 来运行您的程序。清除屏幕就是 text.delete('1.0', 'end-1c')

关于python - 如何在 Python IDLE Shell 中获取终端高度(以行为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59053782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com