我知道我不能在sys.stdin上枚举(),但我必须做这样的事情,而不是在内存中读取整个输入:
for i, line in enumerate(sys.stdin):
line = line.split()
if sys.stdin[i][0]=='something':
foo(sys.stdin[i][0])
else:
foo(sys.stdin[i+1][0])
那么,如何在不将所有东西都读入内存的情况下迭代sys.stdin
?
答案 0 :(得分:0)
您可以使用@Echo off
for /f "tokens=1-5 delims=-." %%a in (
'dir /b D:\NewFolder\*-*-*-*.*'
) do (
IF [%1]==[%%d] (
echo same date %1 -- %%a-%%b-%%c-%%d.%%e
) else (
echo different date %1 -- %%a-%%b-%%c-%%d.%%e
)
)
,一次为readline()
获取一行。如果它在生成器内部,则可以构造一个简单的sys.stdin
循环:
for