• Python文件读取常用方法


    1. 关于读取文件

    f.read() 读取文件中所有内容
    f.readline() 读取第一行的内容
    f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面

    注:因为文件指针的作用,如果以上方法连用,会有读取影响

    使用方法请参见:http://www.cnblogs.com/yun1108/p/8967334.html

    2. f.flush()   :刷新缓冲区,立即写到磁盘上

    3. f.seek(index) : 移动文件指针到指定的下标处,即从指定的下标处开始读取文件,但写入还是从最后开始写入

    4. with open : 用完后自动关闭文件,省去了手动添加f.close()功能  例子:修改文件

    # 第一种,适合读取小一些的文件
    with open('users','a+') as fw:
        fw.seek(0) #用r+,就可省略这一步
        result = fw.read()
        new_result = result.replace('bcd','python')
        fw.seek(0)
        fw.truncate() #清空文件内容
        fw.write(new_result)
        print(new_result)
    
    # 第二种,读取大文件并修改
    import os
    with open('users') as fr,open('.users','w',encoding='utf-8') as fw: #.users是一个临时文件
        for line in fr:#从需要修改的文件里面读文件
            new_line=line.replace('python','修改文件')
            fw.write(new_line)
    os.remove('users')  #删除原文件
    os.rename('.users','users') #将临时文件重命名为users

    5. 循环文件 --- 高效读取文件

    f=open('users','a+',encoding='utf-8')  # f:文件对象,或者文件句柄
    #文件中内容为:
    # abc,123
    # qwe,456
     
    # 1. 循环读取文件中的内容并存入字典
    d={}
    f.seek(0)
    while 1: #第一种,但要求文件里不能有空行,如有空行,则只能读取到空行的上一行
        line=f.readline().strip()
        if line:
            # pass #什么也不做
            user,passwd=line.split(',')
            d[user]=passwd
        else:
            break
    print(d)  #输出内容:{'abc': '123', 'qwe': '456'}
    
    
    # 2. 直接循环文件对象f,每次取的就是文件里的每一行
    f.seek(0) # 如果open文件时是r+,可省略这步
    for i in f:
        print('每次循环的是',i)
    #输出内容:
    #每次循环的是 abc,123
    #每次循环的是 qwe,456
    
    l=['abc123
    ','bcd123
    ']
    f.writelines(l)#会循环list里面的每个元素并写进文件中,此方法用于list,如果是字符串则直接用write写即可
    #文件中的内容更新为:
    # abc,123
    # qwe,456
    # abc123
    # bcd123

    6. encoding='utf-8' : 如果读写的文件中有中文,要加上

  • 相关阅读:
    一个web程序员的年终总结
    编程要诀-心态
    初识vps,域名与购买,初步配置
    一个好的学习方法真的很重要——费曼学习法
    [译]C# 7系列,Part 8: in Parameters in参数
    Dalsa 8K彩色相机Camera link C#采图
    精简Command版SqlHelper
    ASP.NET MVC模块化开发——动态挂载外部项目
    net core WebApi——依赖注入Autofac
    .NET Core 3 WPF MVVM框架 Prism系列之命令
  • 原文地址:https://www.cnblogs.com/denise1108/p/10019544.html
Copyright © 2020-2023  润新知