在Mac OS X终端中,Python的raw_input()函数有限制吗?

8
我写了一个 Python 脚本,并在 Mac OS X Snow Leopard 上使用 python2.6 在终端中运行。我在几个地方使用 raw_input() 导入文本,但似乎遇到了它无法再接受更多字符的限制。
这是 Python 的 raw_input() 限制还是和 Terminal 或 Mac OSX 有关?
是否有更好的方法让用户在 Python 中输入大量文本?

1
尝试在shell中测试Python的raw_limitcat > file.txt。如果两者都有问题,则是终端的问题。 - Dietrich Epp
如果您描述文本的数量和您想要发生的事情,可能会有所帮助。如果您基本上是在编写宏,那么在我的看法中,更有意义的是对文件进行操作。 - fncomp
一个有趣的更新。如果我在终端中运行Python并调用raw_input,我可以添加任意多的文本。但是在我的脚本中,当我添加超过一段文字时,脚本就会锁定。我认为我原以为的raw_input限制实际上是终端窗口锁定或崩溃了。 - Thursdays Coming
1
FWIW,最大允许的字符数为1024。 - sbru
2个回答

16

我也有过相同的经历,如果你没有导入readline模块,Python会限制raw_input输入的长度。一旦我导入了readline模块,它就取消了限制(或者至少将其提高到足够高的水平,使我使用的文本可以正常工作)。


3
有点晦涩,但我也试过了(使用py3的input - Scott Berrevoets
1
也对我有用。这是我见过的最奇怪的错误/解决方案组合之一! - Unknown Coder

4
我认为这是OSX终端的限制/漏洞 - 尝试通过IDLE运行脚本并查看是否仍然遇到相同的问题。

至于更好地处理大量输入的方法 - 完全取决于您的要求,但一些方法可能包括:

  • 从文件导入文本
  • 创建某种GUI /前端以通过更用户友好的控件处理文本输入

我并没有经常使用IDLE,但它似乎不允许我将输入粘贴到IDLE中。 - Thursdays Coming
@星期四:您将无法使用右键上下文菜单,但您可以从“编辑”菜单中选择“粘贴”,或使用OSX的粘贴快捷键(如果我没记错的话是Cmd+V)。 - mal-wan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接