如何在Python中逐行读取文件(或stdin),而不等待读取完整文件
我想在Python中逐行读取和处理一些大文件,并将结果输出到终端。我看过如何从标准输入读取?和如何用Python写一个Unix过滤器?,但我在寻找一些方法,这些方法不需要等到整个文件都读入内存。
我会使用这两个命令:
cat fileName | python myScript1.py
python myScript2.py fileName
3 个回答
-1
if __name__ == '__main__':
while 1:
try:
a=raw_input()
except EOFError:
break
print a
这个会从标准输入读取数据,直到遇到文件结束符(EOF)。
如果你想用第二种方法读取文件,可以使用Tim的方法。
也就是说:
with open("myfile.txt", "r") as myfile:
for line in myfile:
print line
# do something with the current line
9
这是Python中文件对象的标准行为:
with open("myfile.txt", "r") as myfile:
for line in myfile:
# do something with the current line
或者
for line in sys.stdin:
# do something with the current line