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

    文件操作

    1.r(只读模式)

    2.w(只写模式)

    3.a(追加模式)

    以上为纯净模式

    1.r+

    # with open(r'test',mode='r+',encoding='utf-8') as f:
    #     print(f.readable())
    #     print(f.writable())
    #     print(f.readline())
    #     f.write('嘿嘿嘿')

    2.w+

    # with open(r'test',mode='w+',encoding='utf-8') as f:
    #     print(f.readable())
    #     print(f.writable())
        # print(f.readline())
        # f.write('嘿嘿嘿')

    3.a+

    4.r+b

    with open(r'tst',mode='r+b') as f:
        print(f.readable())
        print(f.writable())
        res = f.read()
        # print(res.decode('utf-8'))
        res1 = str(res,encoding='utf-8')
        print(res1)

    文件光标的移动

    1.在rt模式下,read内的数字表示的是字符的个数

    文件内光标的移动

    '''
    f.seek(offset,whence)
    offst:相对偏移量  光标移动的位数
    whence:
        0.参照文件的开头   t和b都可以使用
        1.参照光标所在的当前位置  只能在b模式下用
        2.参照文件的末尾  只能在b模式下用
    '''
    with open(r'tst','r',encoding='utf-8') as f:
        print(f.read(1))
        f.seek(6.0)   #seek移动都是字节数
        f.seek(4,0)    #seek移动都是字节数
    with open(r'tst','rb',encoding='utf-8') as f:
        print(f.read(3).decode('utf-8'))
        f.seek(0,0)
        print(f.read(1).decode('utf-8')
        f.seek(6,0)   #移动的都是字节数
        
    with open (r'tst','rb') as f:
         print(f.read())
         f.seek(-4,2)
         print(f.read().decode('utf-8'))
    with open (r'tst','r+','utf-8') as f:
        f.seek(3,0)
        f.write('')

    写日志

    import  time
    res = time.strftime('%Y-%m-%d %X')
    print(res,type(res))
    with open(r'tst','a',encoding='utf-8') as f:
        f.write('%s egon给jason发了一块钱'%res)

    检测内容

    with open(r'tst','rb') as f:
        f.seek(0,2)
        while True:
        res = f.readline() #查看光标移动了多少位  bytes    
        print(f.tell())
        if res:
            print('新增的文件的文件内容:%s'%res.decode('utf-8'))
            #说明有人操作当前文件
            else#说明文件没有被操作
              print('暂时未被操作')

    截断文件

    with open (r'tst','a',encoding='utf-8') as f:
        f.truncate(6)  #接收的字节的长度 整型
        #保留0~6字节  后面的全被删除(截断)
  • 相关阅读:
    Redis的数据结构
    Centos6.5安装Redis3.0备忘记录
    Centos6.5安装MySQL5.6备忘记录
    QueryRunner使用之可变条件的处理
    List集合遍历整理
    js获取select标签选中的值
    linuxC/C++面试问题总结整理
    live555学习(一)通读Makefile编译live555
    入园博客开篇
    springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法
  • 原文地址:https://www.cnblogs.com/KrisYzy/p/11151334.html
Copyright © 2011-2022 走看看