繁体   English   中英

Python 2.7.10:readline在下一行引起一个前导空格

[英]Python 2.7.10: readline causes a leading space on the following line

我正在编写一个简单的命令行提示符脚本,并注意到在执行readline之后立即打印的行以前导空格开头。 有什么办法可以避免这种行为?

示例函数演示:

import sys
def foo():
    print 'Enter some text.\n> ',
    bar = sys.stdin.readline()[:-1]
    print 'You entered "{0}"'.format(bar)

当我运行此代码时,我得到:

>>> foo()
Enter some text.
> Hi
 You entered "Hi"
^ the leading space I want to get rid of

这是Python 2的“软空间”行为。 print thing,语句之后,下一个print将打印前导空格以将输出与上一个打印输出分开。 这可以是怪异当不同的文本源,如用户输入,使两者的输出print s到出现在不同的行。

有多种方法可以解决软间隔问题,但是在这里,最合适的方法是使用raw_input而不是sys.stdin.readline 它会自动为您换行,并允许您指定提示:

print 'Enter some text.'
foo = raw_input('> ')
print 'You entered "{0}"'.format(foo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM