テキスト ファイルから入力を取得し、「\n」文字に遭遇するたびにテキストを分割しようとしていますが、何も分割されません。タブとスペースで試してみましたが、完全に機能します。何らかの理由で、改行文字では機能しません。文字列を取得する方法と関係がありますか? ファイルをプログラムにパイプしています。同じコード行を IDLE で試してみると、問題なく動作します。
t= input("input string : " )
...
tps = t.split('\n')
print(tps)
input()
1 行だけ読み取ります。一度に 1 行ずつ読み取り、ループで実行する必要があります。
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 :
改行で複数行の文字列を分割するには、通常、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()