如何在python中结束while循环?

时间:2016-04-13 01:12:22

标签: python-2.7

我有一个永不退出的简单例程

 import sys
 infile = sys.argv[1]
 outfile = sys.argv[2]
 count=1
 print 'Input file is ', infile
 print 'Output file is ', outfile
 instream = open(infile,'r')
 while True:
     line=instream.readline()
     if line[0:5]=='<?xml':
     print 'new record', count
     count=count+1
     if line == "eof":
         print 'end'
         break

这会读取内场......但永远不会结束。我需要做什么?

1 个答案:

答案 0 :(得分:0)

readline()没有返回字符串eof来表示文件的结尾;它返回空字符串。 (注意readline会保留终止每一行的换行符,因此空白行将表示为'\n';因此,真正的空白行只能表示剩下 no 数据。 )

可以

while True:
    line = instream.readline()
    # ...
    if line == "":
        break

但通常只是将文件视为迭代器:

for line in instream:
    if line[0:5] == '<?xml':
        print 'new record', count
        count = count + 1