如何在Mac OS X的python中处理raw_input()的EOFError
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Mac OS X的python中处理raw_input()的EOFError,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1570字,纯文字阅读大概需要3分钟。
内容图文
![如何在Mac OS X的python中处理raw_input()的EOFError](/upload/InfoBanner/zyjiaocheng/812/b878ac922b734857862706537d0e6d8a.jpg)
我的python程序有两个对raw_input()的调用
第一个raw_input()是从用户获取多行输入.用户可以在输入结束时发出Ctrl D(在Windows中为Ctrl Z).
第二个raw_input()应该使用带有(y / n)类型提示的用户的另一个输入.
不幸的是(仅在Mac OS X中?),第二个raw_input()在第一个raw_input()提示符下终止stdin(使用Ctrl D)时引发EOFError.
有关更多说明,请参阅下面的示例代码 –
mailBody = ''
signature = 'Later!'
print 'Compose your mail:'
while True:
try:
# Hit ^D after entering some text
mailBody+= raw_input()
mailBody+='\n'
except EOFError:
break
# This raw_input() throws EOFError too. Because, stdin is terminated for the session
# when EOF (^D) is issues at first raw_input() method (Where as, it doesn't raise EOFError in Linux)
opt = raw_input("Do you want to add signature to your mail? (y/N): ").lower()
print '-'*10+'Your Mail'
if opt == 'y':
print mailBody+"\n"+signature
else:
print mailBody
print '-'*19
程序输出:
-1- abhinay@MacBook code/py % python prompt.py
Compose your mail:
hello there!
how is everybody?
Do you want to add signature to your mail? (y/N): Traceback (most recent call last):
File "prompt.py", line 11, in <module>
opt = raw_input("Do you want to add signature to your mail? (y/N): ").lower()
EOFError
如何在第二次提示不提出EOFError.请帮忙!
编辑:
我编辑了我的问题以保持简单.
我在Linux系统中运行了上面的代码,它没有任何问题.也就是说,第二个raw_input()提示用户接收'(y / N)’选项.
解决方法:
当标准输入终止时(通过命中控制-D,在Unix衍生系统中 – 我认为它是Windows中的控制-Z),这很正常,此后它会保持终止(除非你在此期间关闭并重新打开它,当然).
内容总结
以上是互联网集市为您收集整理的如何在Mac OS X的python中处理raw_input()的EOFError全部内容,希望文章能够帮你解决如何在Mac OS X的python中处理raw_input()的EOFError所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。