• Python


    前言

    读取文件的三个方法:read()、readline()、readlines()。均可接受一个方法参数用以限制每次读取的数据量,但通常不使用

    read()

    优点:读取整个文件,将文件内容放到一个字符串变量中。

    劣势:如果文件非常大,尤其是大于内存时,无法使用read()方法。

    总结:不适用于读取大文件

    简单代码

    f = open('test/gbk.txt', 'r+', encoding='utf-8')
    print(f.read())

    测试结果

    123
    456
    789
    @#$%

    readline()

    优点:readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存,不占用内存

    缺点:比readlines慢得多

    简单代码

    # 读取一行
    f = open('test/gbk.txt', 'r+', encoding='utf-8')
    print("读取一行 ====")
    line = f.readline()
    while line:
        # 打印当前文件指针的位置
        print("文件指针:", f.tell())
        print("行内容:", line)
        line = f.readline()

    测试结果

    读取一行 ====
    文件指针: 7
    行内容: tests
    
    文件指针: 12
    行内容: 123
    
    文件指针: 17
    行内容: 456
    
    文件指针: 22
    行内容: 789
    
    文件指针: 28
    行内容: 菠萝

    包含知识点

    • 当你每次调用readline()方法时,你的文件指针就会指向当前行尾部,一个换行符   占两位,一个中文也是
    • 读取到最后一行之后再调用readline()就会返回空,结束循环

    readlines()

    特点:一次性读取整个文件;自动将文件内容分析成一个行的列表

    简单代码

    # 读取多行
    f = open('test/gbk.txt', 'r+', encoding='utf-8', errors='ignore')
    print("读取多行 ====")
    print(f.readlines())

    测试结果

    ['tests
    ', '123
    ', '456
    ', '789
    ', '菠萝']

    包含知识点

    • readlines()读取所有行然后把它们作为一个字符串列表返回
    • 返回的每一行内容包含换行符
  • 相关阅读:
    iOS 适配iPhoneX上tableHeaderView发生了高度拉伸、UI出现的空白间距
    无线加密WEP、WPA、WPA2及TKIP、AES
    字符替换操作
    jQuery版本升级问题汇总
    ipv6服务器及环境搭建
    git删除某次提交操作
    五种IO模型
    jQuery1.6以上attr改用prop
    线程创建pthread_create用法(转)
    网络字节序与主机字节序
  • 原文地址:https://www.cnblogs.com/poloyy/p/12350736.html
Copyright © 2020-2023  润新知