为什么可以';我不能在sys.stdin中连续两次循环吗?(Python)

为什么可以';我不能在sys.stdin中连续两次循环吗?(Python),python,python-3.x,stdin,sys,Python,Python 3.x,Stdin,Sys,首先,我需要得到行数,因此我需要: for line in sys.stdin: c = c + 1 print("Number of lines:" + str(c)) A = [[] for x in range(0,c)] print(A) 但是我需要为sys.stdin:中的行再次输入,因为我需要读取输入 它不工作,第二次几乎与输入消耗时相同,现在为空。将stdin输入保存在变量中: lines = sys.stdin.readlines() 现在,您可以任意多次循环行变量

首先,我需要得到行数,因此我需要:

for line in sys.stdin:
    c = c + 1
print("Number of lines:" + str(c))
A = [[] for x in range(0,c)]
print(A)
但是我需要为sys.stdin:中的行再次输入
,因为我需要读取输入


它不工作,第二次几乎与输入消耗时相同,现在为空。

将stdin输入保存在变量中:

lines = sys.stdin.readlines()
现在,您可以任意多次循环
变量


如果你只是数行,你根本不需要一个循环;您可以说
c=len(lines)

将stdin输入保存在变量中:

lines = sys.stdin.readlines()
现在,您可以任意多次循环
变量


如果你只是数行,你根本不需要一个循环;您可以只说
c=len(lines)

如果要多次访问输入,必须保存输入。第一个
for
循环使用不可查找的流

lines = sys.stdin.readlines()
如果您正在处理每一行,您可能更喜欢以下内容:

results = [foo(i) for i in sys.stdin]
print("Have {} results".format(len(results))
您还可以使用
枚举
进行计数:

for cnt, line in enumerate(sys.stdin, start=1):
    foo(line)

print('Saw {} lines'.format(cnt))

如果要多次访问,必须保存输入。第一个
for
循环使用不可查找的流

lines = sys.stdin.readlines()
如果您正在处理每一行,您可能更喜欢以下内容:

results = [foo(i) for i in sys.stdin]
print("Have {} results".format(len(results))
您还可以使用
枚举
进行计数:

for cnt, line in enumerate(sys.stdin, start=1):
    foo(line)

print('Saw {} lines'.format(cnt))

正是这样:输入被消耗,现在是空的。为什么您首先需要行数?正是因为:输入已消耗,现在为空。为什么您首先需要行数?