zoukankan      html  css  js  c++  java
  • Python 文件操作 day2

    一、打开文件的模式1:读、写、追加

    1、r读:读模式,只能读,不能写,打开不存在的文件会报错;可省略'r',因为不写默认是读模式

    f = open('filename',encoding='utf-8') 
    result = f.read()
    print(result)
    f.close()

    2、w写:写模式,只能写,不能读,会覆盖原来的内容,文件不存在会创建

    f = open('test.txt','w',encoding='utf-8')
    f.write('abc')

    3、a追加:追加模式,只能写,不能读,在原来文件的内容上增加新内容;文件不存在会创建文件

    f = open('test.txt','a',encoding='utf-8')
    f.write('哈哈')
    f.close()

    二、打开文件的模式2:r+,w+,a+

    1、r+:只要和r有关,打开不存在的文件都会报错,r+默认的文件指针在最前面;

    2、w+:只要和w有关,都会清空原来的文件;

    3、a+:文件指针默认是在末尾的,如果想要读到内容,先要把文件指针移动到最前面;

    由于a+模式是在内容后面追加,不会清空原内容,所以使用时尽量使用a+模式

    三、读取文件的几种方法:

    read()  : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长

    readline()  :每次读取一行内容。内存不够时使用,一般不太用

    readlines()   :一次性读取整个文件内容,并按行返回到list,方便我们遍历

    一般小文件我们都采用read(),不确定大小你就定个size,大文件就用readlines()

    f = open('new.txt',encoding='utf-8')
    # print(f.read()) #读取文件所有的内容
    # print(f.readline())#读取文件一行的内容
    # print(f.readline())#读取文件一行的内容
    print(f.readlines())#将读取的所有的内容,把所有内容放到list里展示
    f.seek(0) #移动文件指针
    print(f.read())
    f.close()

    四、将列表的内容传入文件的方法:

    1、方法1:

    #将l列表内容写入文件new.txt中
    l = ['a','b','c','d','e']
    f = open('new.txt','w+',encoding='utf-8')
    
    for i in l:
        f.write(i)
    f.seek(0)
    print(f.read())
    f.close()

    2、方法2:

    f.writelines(l) #传一个list的话,他会自动帮你循环,把list里面每一个元素写到文件了里面
    f.seek(0)
    print(f.read())
    f.close()

     五、修改文件

    #1、简单直接粗暴的方式
    # (1)先读取内容
    # (2)再替换
    # (3)清除原来文件的内容
    # (4)把新的内容写进去
    
    f = open('old.txt','a+',encoding='utf-8')
    f.seek(0)
    result = f.read()
    content = result.replace('xiaolan','dalan')
    f.seek(0)
    f.truncate()#清空文件内容
    f.write(content)
    f2 = open('smh.txt','w')
    f2.write(content)
    #2、逐行处理
    #(1)打开a文件,在打开空文件b文件
    #(2)从a文件读一行,修改,修改之后写在b文件里
    #(3)删除a文件,把b文件的名字改成a文件
    f = open('case.txt',encoding='utf-8')
    f2 = open("case2.txt",'w',encoding='utf-8')
    
    for line in f:
        result=line.upper()
        f2.write(result)
    f.close()
    f2.close()
    
    import os
    os.remove('case.txt')
    os.rename('case2.txt','case.txt')

    六、不用关闭文件的方式:

    # with方法不需要关闭文件,会自动关闭
    with open('new.txt') as f: 
         f.read()
    
    with open('new.txt') as f,open('new_w+','w') as f2:
        f=f.read()
        f2.write('xx')
  • 相关阅读:
    ABP框架理论研究总结(典藏版)
    ABP系列文章总目录:
    使用NServiceBus开发分布式应用
    shell脚本进阶 详解及其实例(一)
    linux模拟实现主机跨路由通信
    网络管理之基础知识详解
    RAID RAID 大揭秘~
    磁盘管理(一)磁盘结构
    如何在centos7上安装源码包
    压缩与解压缩
  • 原文地址:https://www.cnblogs.com/candysalty/p/10948576.html
Copyright © 2011-2022 走看看