簡體   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