• python(四)文件的读写追加模式


    1.文件的读模式:也是默认的方式,

    f=open(‘文件路径文件名’,'r',encoding='utf-8'):以读的模式打开一个文件,这里的'r'也可以不写,读模式是默认模式,encoding='utf-8'是防止中文乱码。打开文件,然后有一系列的操作,但是打开的语句太长,所以赋值给一个变量,这样方便之后的操作。

     R模式:只能读,读不存在的文件会报错,执行写的方法会报错。

    2. W模式:只能写,不能读,读文件会报错。写一个不存在的文件,会新建一个文件,然后写。写一个已经存在的文件,会先清空文件内容再写

    3. a 模式:追加模式,只能写不能读。写一个已经存在的文件,会在文件的后面写内容。追加一个不存在的文件,会创建一个文件,然后写。

    4. R+模式:可以写,也可以读,但写的话是在开头写,要把其他的字符踢掉,给写的字符腾位子。打开不存在的文件会报错

    5. W+模式:可以写,也可以读。因为‘W’会先把文件里面的内容清空掉,再去读,读到的内容就是空

    6.a+ 模式:文件指针默认在末尾。

    7. 可以使用a+和seek(0)方法,是文件指针放在文件的开头

    8.read():读完文件的所有内容

    9.readline():按行读,读一行

    10. readlines():读完整个文件,写在list里面,每一行就是一个元素

    f = open('a.txt','r',encoding='utf-8')#打开模式r w a
    result1 = f.readline()#读文件,一次只读一行
    print(result1)
    result = f.read()#读文件,获取文件里的全部内容
    result2 = f.readlines()#读文件,把文件里的内容放到一个list里,每一行是一个元素
    #f.read(),f.readlines()这两个方法当文件很大时,会占用很大的内存
    print(result2)
    #处理大文件的时候,循环读取
    for line in f:
        print(line)
    f.close()#关闭文件

    11. write(‘’s‘’):把字符串写在文件里,只能写字符串

    12. writelines():可以把一个列表中数据写进文件里

    f1 = open('a1.txt','w',encoding='utf-8')
    f1.write('12')#这个是一次写一行
    #print(f.read())
    l = ['fdslfjs
    ','fdsrewr
    ','fdsfsdfrere
    ']
    f1.writelines(l)#将列表写到文件中
    #循环写入,和writelines()的功能一样
    #for i in l:
      #  f1.write(i)
    f1.close()

    13.删除文件内容

    with open('数据.txt','r+',encoding='utf-8') as f:
         f.truncate()  # 清空文件内容
         f.flush()  # 不管缓冲区有没有满,立即更新到磁盘

    14.修改文件有两种方法:

    # 1、简单粗暴直接的
    #     1、读取文件所有内容
    #     2、replace
    #     3、清空文件
    #     4、把新的内容写进去
    #     修改小文件的话可以用这种方式
    with open('数据.txt','r+',encoding='utf-8') as f:
        content = f.read()
        new_content = content.replace('100','1000000000000')
        f.seek(0)
        f.truncate()
        f.write(new_content)
        f.flush()#立即刷新缓冲区的内容,写到磁盘上
    #2、两个文件操作
        #1、r模式打开a文件,w模式打开b文件
        #2、逐行读取a文件的内容,读完之后替换内容
        #3、把替换完的内容写到b文件里面
        #4、把a文件删掉,把b文件的名字改成a文件
    import os
    with open('数据.txt',encoding='utf-8') as f1, open('数据2.txt','w',encoding='utf-8') as f2:
        for line in f1:
            new_line = line.replace('4','444444')
            f2.write(new_line)
    
    os.remove('数据.txt')
    os.rename('数据2.txt','数据.txt')
  • 相关阅读:
    加解密工具类(含keystore导出pfx)
    Java使用数字证书加密通信(加解密/加签验签)
    关于javax.crypto.BadPaddingException: Blocktype错误的几种解决方法
    产生定长的随机数
    数字证书生成--加密密/加签验签
    随机指定范围内N个不重复的数
    sql2012还原sql2008备份文件语句
    uploadify API
    海量数据处理分析
    .net经验积累
  • 原文地址:https://www.cnblogs.com/dmjsd/p/10952450.html
Copyright © 2020-2023  润新知