如何接受来自列表 python 中的文件的数据流



我应该在python中append STDIN中的所有整数值。

例如:

5
6
0
4
2
4
1
0
0
4

假设下面是来自 stdin的整数,如何将这些值附加到list中?

我的代码:

result = []
try:
    while raw_input():
        a = raw_input()
        result.append(int(a))
except EOFError:
    pass
print result

谁能帮我?谢谢

结果只是打印 [6, 4, 4, 0, 4]

问题是你已经给raw_input()打了两次电话。

while raw_input(): # this consumes a line, checks it, but does not do anything with the results
    a = raw_input()
    result.append(int(a))

作为关于 python 的一般说明。类似流的对象,包括打开用于读取的文件、stdin 和 StringIO 等,都有一个迭代器,可以迭代那里的行。所以你的程序可以简化为pythonic。

import sys
result = [int(line) for line in sys.stdin]

您在 while 行中每隔raw_input消耗一次,请更改此设置以测试"a"是否为非空。 例如:

result = []
try:
    a = raw_input()
    while a:
        result.append(int(a))
        a = raw_input()
except EOFError:
    pass

打印结果

好的,

使用fileinput模块解决了我的问题

import fileinput
for line in fileinput.input():
    print line

将 while 循环中的 raw_input() 设置为变量(在您的例子中为"a")应该可以解决问题。

result = []

a = raw_input("Enter integer pls:n> ")
try:
    while a is not '':
        result.append(int(a))
        a = raw_input("Enter another integer pls:n> ")
except ValueError:
    pass
print result

相关内容

  • 没有找到相关文章

最新更新