我正在尝试使用Python从标准输入读取大量行。
more hugefile.txt | python readstdin.py
问题在于当我读取了一行后,程序就会冻结。
print sys.stdin.read(8)
exit(1)
这段代码打印前8个字节,但我期望它停止运行,但它从未停止。我认为它并没有真正地只读取了前几个字节,而是试图将整个文件读入内存。
使用sys.stdin.readline()也有同样的问题。
我真正想做的当然是读取所有行,但使用缓冲区,这样我就不会耗尽内存。
我正在使用Python 2.6版本。
type
也是不必要的。cat
命令的目的是连接文件。如果只有一个文件,无需与任何东西连接它会浪费时间和进程。 - Greg Hewgill