zoukankan      html  css  js  c++  java
  • 读一个文件内容的4种方法

    第一种  readline() 读一行执行完就把文件关闭
    with open("data1.txt",mode="r",encoding="utf-8")as f1:
    content=f1.readline()
    print(content)
    输出:你好苍老师
    第二种 readlines()  拿到一个列表
    with open("data1.txt",mode="r",encoding="utf-8")as f1:
    content1
    = f1.readlines()
    print(content1)
    输出:['ufeff你好苍老师 ', 'alex我是你爸爸 ', '小泽老师你好棒 ', '来呀呀 ', '咯咯lol']
    附加:

    with open("data1.txt",mode="r",encoding="utf-8")as f1: content=f1.readline() print("readline读出:content=%s"%content) content1 = f1.readlines() print("readlines读出:content1=%s"%content1) 输出: readline读出:content=你好苍老师 readlines读出:content1=['alex我是你爸爸 ', '小泽老师你好棒 ', '来呀呀 ', '咯咯lol']

    为啥会这样,执行完readline()光标移动到第一行的 之后,再执行 readlines() 就从第二行开头开始读


    第三种  for line in f1   一行一行读   line拿到的是一个字符串
    with open("data1.txt",mode="r",encoding="utf-8")as f1:
        for line in f1:
            print(line)
    输出:
    你好苍老师
    
    alex我是你爸爸
    
    小泽老师你好棒
    
    来呀呀
    
    咯咯lol
    第四种:read()  全部读出啦
    with open("data1.txt",mode="r",encoding="utf-8")as f1:
    content2=f1.read()
        print(content2)
    输出:
    你好苍老师
    alex我是你爸爸
    小泽老师你好棒
    来呀呀
    咯咯lol

    文件data1是txt文件,编码选utf-8保存

    总结

    文件操作,读取文件内容,关键点是看光标的位置,记住read(1),这个1是代表读一个字符,而seek(1)这个1是字节;
    utf-8:一个中文字符=3个字节,移动光标位置,比如一个中文字符,seek(2)文件内容就会变成乱码,因为光标无法达到中文所指定位置(中文3个字节),乱码就是编码变了,光标就能跳到所指定位置了:
  • 相关阅读:
    X
    W
    J
    A
    Q
    P
    B
    排列和组合的求解
    深度学习之序列处理
    32位和64位数据类型大小对比
  • 原文地址:https://www.cnblogs.com/yx12138/p/10705904.html
Copyright © 2011-2022 走看看