python从通过参数行馈送的文本文件中读取

时间:2016-02-17 19:21:26

标签: python

我将此python mapper1.py input.txt输入到脚本所在的目录中。但是,在我按下回车键

后,控制台不返回任何内容,只是转到下一行以获得更多输入
import sys
import re    

def main(argv):
    with open(sys.argv[1], "r") as f:
        contents = f.readline()
        line = contents
        # line = sys.stdin.readline()
        pattern = re.compile("[a-zA-Z0-9]+")
        words = []

        while line:
            for word in pattern.findall(line):
                words.append(word.lower())
            line = sys.stdin.readline()

        words.sort()
        for w in words:
            print(w + "\t" + "1")


if __name__ == "__main__":
   main(sys.argv)

这是我退出后收到的错误

are     1
Traceback (most recent call last):
 File "mapper1.py", line 24, in <module>
  main(sys.argv)
 File "mapper1.py", line 20, in main
  print(w + "\t" + "1")
 KeyboardInterrupt

1 个答案:

答案 0 :(得分:1)

你的while line:循环永远不会结束,因为输入一个&#34;空行&#34;在键盘上给出一个回车符,它算作某事