Python3 file next()方法迭代读取文件行

Python3中的file对象支持迭代读取文件行,可以使用next()方法来实现,比如:

f = open('test.txt', 'r')
for line in f:
    print(line)
f.close()

也可以使用next()方法:

f = open('test.txt', 'r')
while True:
    line = f.next()
    print(line)
f.close()

next()方法也可以接收一个参数,表示读取的字节数:

f = open('test.txt', 'r')
while True:
    line = f.next(10)
    print(line)
f.close()

在这种情况下,每次读取的字节数为10,但是要注意,如果一行文本的字节数小于10,那么next()方法将会返回整行文本,不会把一行文本分成多次读取,也就是说,next()方法会一次性读取一行文本,而不会拆分成多次读取。

使用next()方法迭代读取文件行时,可以使用for循环,也可以使用while循环,只要在while循环中使用try-except语句来捕获StopIteration异常就可以了,比如:

f = open('test.txt', 'r')
while True:
    try:
        line = f.next()
        print(line)
    except StopIteration:
        break
f.close()

使用next()方法迭代读取文件行的优点:

  • 可以指定每次读取的字节数,从而提高读取效率。
  • 可以使用while循环,从而更加灵活。

使用next()方法迭代读取文件行的缺点:

  • 不能按行读取,只能按字节读取。
  • 每次读取的字节数必须是一个定值,不能动态变化。

本文链接:http://task.lmcjl.com/news/8659.html

展开阅读全文