使用sys.stdin比较python中的2个lins



我正在使用python做MapReduce作业,它将使用sys.stdin作为输入文件的读取器。例如:

for line in sys.stdin:
# compare 1st line with the 2ed line.

我可以将所有文件内容加载到内存中,并使用索引为示例实现2行比较:

lines= open("guru99.txt","r")
for i in range(len(lines)):
if lines[i] != lines[i-1]:
...

我的问题是如何使用sys.stdin的方式进行这两行的比较?作为家庭作业文件";guru99.txt";是巨大的,我无法将其加载到内存中,但只有sys.stdin方式才能工作。

您可以使用next获得第一行,然后迭代剩余的输入。

import sys
try:
prev = next(sys.stdin)
except StopIteration:
# no input
exit()
for line in sys.stdin:
if line == prev:
do the things
prev = line

相关内容

  • 没有找到相关文章

最新更新