【问题标题】:Stop input function in python [duplicate]在python中停止输入函数[重复]
【发布时间】:2014-04-29 16:02:15
【问题描述】:

我想阻止用户在输入函数中输入太多字符,所以当输入太多字符但之前输入的字符仍然存在时,它只会停止 input()。在这种情况下,我不想检查这是否是在用户按下 Enter 之后,但我想中断该功能。这有可能吗?

【问题讨论】:

标签: python


【解决方案1】:

可能有一个循环和 msvcrt。这是一个例子:

while len(string) < 10:
#Whatever length you want instead of 10
    string += msvcrt.getch()

【讨论】:

  • 当它到达循环的末尾(最大长度)时,它会简单地退出循环,停止输入。
  • 这只适用于 Windows。
  • 但它有效。这是我认为可以满足请求的唯一方法,而且总比没有好:)
【解决方案2】:

我不相信这是可能的,但如果您担心最大长度(对于数据库值或类似的东西),您可以使用切片来解决过长的条目:

maxlen = 256
userval = input("Enter value (max 256):")[:maxlen]

【讨论】:

  • 我相信您可以使用readline 即时完成,但是您会遇到使用readline 带来的所有问题,即您的代码现在是 GPL v3
  • 链接到readline 不会将您的代码置于 GPL v3 之下;它只要求如果分发,它必须在与 GPL 兼容的许可下分发。
  • 当然,但是您仍然使它成为最激进的开源类型(左复制,无署名,必须分发带有可执行文件的源代码)。我经常惊讶于 Python 的 readline 文档并没有警告人们这一点。我想知道有多少技术上违反许可的应用程序?
猜你喜欢
  • 2021-08-20
  • 1970-01-01
  • 2014-02-08
  • 2015-03-23
  • 2021-11-15
  • 1970-01-01
  • 2016-05-06
  • 2019-01-17
  • 2014-12-21
相关资源
最近更新 更多