python-io

Python - 文件

  1. 简单文件读写

    #读文件
    file=open('users.txt','r')
    content=file.read()
    print(type(content))   #str
    
    #写文件
    str='我来自Python'
    file=open('users.txt','w')
    file.write(str)      #会替换掉原文本
    file.close()
    
    #追加数据
    file=open('users.txt','a')
    file.write(str)
    file.close()
    

    write()方法不会在字符串的结尾添加换行符(’\n’):当存入非字符串对象是,数据必须转化为字节码,或者序列化

  2. File对象的属性

    文件名:fo.name

    是否已关闭:fo.closed

    返回被打开文件的访问模式:fo.mode

    末尾是否强制加空格 : fo.softspace

  3. 打开模式

    标识模式说明
    r只读文件不存在报错
    w只写文件不存在,新建文件
    a追加文件不存在,新建文件
    r+可读写文件不存在报错,先读取文件,然后才能写入文件,反之,写不进内容
    w+可读写先写文件,然后就无法读文件了。。。。
    a+可读写同上,原因是文件指针的位置走到了最后

    二进制读写:

    #wb+
    my_string='hello world,您好世界\n'
    fp_write=open('data01.txt','wb+')
    fp_write.write(my_string.encode())
    fp_write.close()
    
    #rb+
    fp_read=open('data01.txt','rb+')
    content02=fp_read.read()
    print(content02)   #b'hello world,\xe6\x82\xa8\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c\n'
    print(content02.decode('utf-8'))  #hello world,您好世界
    
    #ab+
    fp_append=open('data01.txt','ab+')
    fp_append.write(my_string.encode())
    fp_append.close()
    
  4. 目录

    1. ./ 当前目录
    2. …/上一级目录
    3. /下一级目录
  5. 常用方法

    1. readlines()

      fp_read=open('data.db','r',buffering=-1)
      line=fp_read.readline()
      lines=fp_read.readlines()
      for i in lines:
          print(i)
      fp_read.close()
      
    2. tell()

      返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

      fp_read.tell()
      
    3. seek()

      如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。

      from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:

      • seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
      • seek(x,1) : 表示从当前位置往后移动x个字符
      • seek(-x,2):表示从文件的结尾往前移动x个字符
      line=fp_read.readline()
      fp_read.seek(0)
      lines=fp_read.readlines()
      
    4. flush()

      flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

      一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值