Python换成了换行符

时间:2015-09-21 03:08:39

标签: python python-2.7 split newline

我无法通过换行符将字符串拆分为列表。我的代码:

i=raw_input().split("\n")

.split()执行我认为的操作吗?如果是这样,我该如何让它合作?

以下是我的意见:

>>>>>>v
^     v
^     >>>>X

3 个答案:

答案 0 :(得分:4)

the documentation -

中所述
  

<强>的raw_input([提示])

     

如果存在prompt参数,则将其写入标准输出而不带尾随换行符。 该函数然后从输入读取一行,将其转换为字符串(剥离尾随换行符),然后返回该行。读取EOF时,会引发EOFError。

它从输入中读取一行。如果要从输入中读取三行,则必须使用三个raw_input(),您可以阅读三个raw_input()并将它们附加到列表中。示例 -

lst = [raw_input(), raw_input(), raw_input()]

演示 -

>>> lst = [raw_input(), raw_input(), raw_input()]
1
2
3
>>> lst
['1', '2', '3']

如果要从文件或其他地方重定向标准输入,如@KevinGuan的评论中所述,您也可以使用sys.stdin.read()一次读取完整输入,然后对其进行拆分。示例 -

import sys
x = sys.stdin.read()
print(x.split('\n'))

示例文本文件 -

Blah
Blah1
blah2

结果 -

python a.py < a.txt
['Blah', 'Blah1', 'blah2']

但请注意,如果您从文件重定向,我宁愿使用open()来读取python本身的文件。

答案 1 :(得分:3)

我认为你想使用sys.stdin.read()

import sys
data = sys.stdin.read()
data_list = data.strip().split('\n')

print data_list

<强>输出:

# here is the input:
>>>>>>v
^     v
^     >>>>X

# then press Ctrl+D on Linux, or Ctrl+Z on Windows
['>>>>>>v', '^     v', '^     >>>>X']

答案 2 :(得分:0)

使用示例输入读取文件中的行列表

import fileinput

lines = [line.strip() for line in fileinput.input('input.txt')]

输出:

>>> lines
['>>>>>>v', '^     v', '^     >>>>X']