• Python的文件处理


    一、文件处理的流程

      1.打开文件,得到文件句柄并赋值给一个变量
      2.通过句柄对文件进行操作
      3.关闭文件

      示例:

    d = open('abc')
    data1 = d.read()
    print(data1)
    d.close()

    二、关于文件处理的函数

    readable()    #对文件是否可读进行判断
    readline()        #读取文件一行
    readlines()    #把文件处理成列表的形式
    writeable()    #对文件是否可写进行判断
    writelines()    #将内容已列表的形式写入文件
    write()        #将内容写入文件
        #注:写入的内容只能是字符串格式

      示例1:文件的更改

    read = open('aaa','r',encoding='utf-8')
    data = read.readlines()
    read.close()
    
    write = open('aaa','w',encoding='utf-8')
    write.write(data[0])
    write.close()

      示例2:文件的追加

    add = open('aaa','a',encoding='utf-8')
    add.write('333333333333333333333')
    add.close()

    三、文件处理’b’模式

      1.文件不管以什么编码保存到硬盘上,都是以二进制方式存储,所以在读取时可以直接用二进制来读取,rb
      2.rb,以二进制来读取,所以,不可以在使用encoding使用别的编码
      3.关于换行,windows以' '来换行,linux与unix以' '来换行
      4.对字符串进行编码-->encode,对二进制字节(bytes)进行解码—>decode

    例:'b'模式进行查看

    #源文件aaa内容:
    aaa
    bbb
    ccc
    
    *******************
    b = open('aaa','rb')
    data = b.read()
    data1 = data.decode()
    b.close()
    print(data)
    print(data1)
    
    
    #结果:
    b'aaa
    bbb
    ccc'
    aaa
    bbb
    ccc

      例:'b'模式进行写入

    wb = open('aaa','wb')
    wb.write(bytes('aaa',encoding='utf-8'))
    wb.write('bbb'.encode('utf-8'))
    wb.close()
    #输出结果:
    #aaa文件内容为:aaabbb

    四、seek的使用方法

      file.seek()方法标准格式是:file.seek(offset,whence)
        offset:开始的偏移量,也就是代表需要移动偏移的字节数
        whence:给offset参数一个定义,表示要从哪个位置开始偏移;
            0代表从文件开头开始算起。
            1代表从当前位置开始算起。
            2代表从文件末尾算起。
            whence值为空没设置时会默认为0。

    示例:

    w = open('aaa','w')
    w.write('aaa
    bbb
    ccc')
    w.close()
    
    rb = open('aaa','rb')
    rb_seek = rb.seek(2)
    rb1 = rb.read(4)
    print(rb_seek)
    print(rb1)
    #结果:
    2
    b'a
    b'

    高端示例:处理最后一行数据:

    rb = open('abc','rb')
    chars = -20
    for i in rb:
        while True:
            rb_seek = rb.seek(chars,2)
            rb_read = rb.readlines()
            if len(rb_read) > 1:
                print(rb_read[1])
                break
            chars = chars*2
    rb.close()
  • 相关阅读:
    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
    jvm学习笔记二(减少GC开销的建议)
    jvm学习笔记一(垃圾回收算法)
    【转】 StringUtils中 isNotEmpty 和isNotBlank的区别
    单例模式
    工厂模式
    个人项目作业
    第一次作业-热身!
    第四单元总结
    第三单元总结
  • 原文地址:https://www.cnblogs.com/feng0919/p/10085686.html
Copyright © 2020-2023  润新知