zoukankan      html  css  js  c++  java
  • 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()读取所有行然后把它们作为一个字符串列表返回
    • 返回的每一行内容包含换行符
  • 相关阅读:
    Linq to Sql 总生成 where ID is null 的解决办法
    jexus asp.net Linux Web Server
    怎么修改盘符
    TCP、UDP、IP 协议分析
    和浙大妹子聊准备笔面
    2015腾讯笔试大题
    导出/打印项目数据报表需要设置IE浏览器
    Eclipse快捷键
    Eclipse如何解决启动慢?
    eclipse mars4.5安装hibernate开发环境
  • 原文地址:https://www.cnblogs.com/poloyy/p/12350736.html
Copyright © 2011-2022 走看看