首先我需要获得行数,所以我这样做:
for line in sys.stdin:
c = c + 1
print("Number of lines:" + str(c))
A = [[] for x in range(0,c)]
print(A)
但是我需要再次输入for line in sys.stdin:
,因为我需要阅读输入。
它不起作用,第二次几乎就像消耗的输入一样,现在是空的。
答案 0 :(得分:3)
将stdin输入保存在变量中:
lines = sys.stdin.readlines()
现在,您可以根据需要循环遍历lines
变量。
如果您只计算线条,则根本不需要循环;你可以说c = len(lines)
。
答案 1 :(得分:1)
如果要多次访问输入,则必须保存输入。第一个for
循环使用不可搜索的流。
lines = sys.stdin.readlines()
如果您正在处理每一行,您可能更喜欢以下内容:
results = [foo(i) for i in sys.stdin]
print("Have {} results".format(len(results))
您还可以使用enumerate
来计算:
for cnt, line in enumerate(sys.stdin, start=1):
foo(line)
print('Saw {} lines'.format(cnt))