微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Python文件处理中混合使用readline和行迭代器是否安全?

如何解决在Python文件处理中混合使用readline和行迭代器是否安全?

不,这不安全

使用预读缓冲区的结果是,将next()与其他文件方法(如readline())组合在一起无法正常工作。

您可以next()在此处跳过第一行。您还应该测试stopiteration,如果文件为空,则会引发。

with open('myfile.txt') as f:
    try:
        header = next(f)
    except stopiteration as e:
        print "File is empty"
    for line in f:
        # do stuff with line

解决方法

使用readline()和读取某些行是否安全for line in file,是否保证使用相同的文件位置?

通常,我想忽略第一行(标题),所以我这样做:

FI = open("myfile.txt")
FI.readline()             # disregard the first line
for line in FI:
    my_process(line)
FI.close()

这样安全吗,即可以保证迭代行时使用相同的文件位置变量?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。