我正在從文本文件中獲取輸入,並嘗試在文本遇到「\ n」字符時分割文本,但它不分割任何東西。我試過它在標籤和空格,它完美的作品。出於某種原因,它不適用於換行符。這與我得到字符串的方式有關嗎?我將文件傳送到程序中。當我給同樣的代碼行嘗試IDLE時,它工作正常。在python中使用.split()方法
t= input("input string : ")
...
tps = t.split('\n')
print(tps)
我正在從文本文件中獲取輸入,並嘗試在文本遇到「\ n」字符時分割文本,但它不分割任何東西。我試過它在標籤和空格,它完美的作品。出於某種原因,它不適用於換行符。這與我得到字符串的方式有關嗎?我將文件傳送到程序中。當我給同樣的代碼行嘗試IDLE時,它工作正常。在python中使用.split()方法
t= input("input string : ")
...
tps = t.split('\n')
print(tps)
分裂的換行符的多行字符串,您通常會使用str.splitlines()
代替,它可以處理不同的換行符約定:
>>> 'Test\r\nlines\nall mixed\r'.splitlines()
['Test', 'lines', 'all mixed']
注意input()
只給你第一線任何案件;對於多行輸入你可能想從sys.stdin
,而不是閱讀:
for line in sys.stdin:
# handle a line
或讀線在一個循環:
while True:
line = input()
分割'\ n'仍然會分裂,但OP說「它不分割任何東西」。 – RichieHindle
@RichieHindle:如果使用'\ r',它不會分割。不太可能,我會批准你,但仍然如此。 –
您需要一臺時間機器(或者一個正常工作的MacOS <= 9盒,以較難的爲準)。 :-) – RichieHindle
input()
只讀取一行。你需要在一個循環中運行它,讀線在同一時間:
try:
while True:
t = input("input string : ") # Or raw_input for Python 2
print t.replace('e', 'X')
except EOFError:
pass
運行這個例子作爲python x.py < x.py
和它打印:
input string : try:
input string : whilX TruX:
input string : t = raw_input("input string : ")
input string : print t.rXplacX('X', 'X')
input string : XxcXpt EOFError:
input string : pass
input string :
真的這是答案?!! –
@GrijeshChauhan:爲什麼不呢? –
@MartijnPieters其實我的問題是在OP –
當時在Windows機器上創建的文件?如果是這樣,行結束可能是'\ r \ n' –