• 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字节  后面的全被删除(截断)
  • 相关阅读:
    js判断是否为数字
    MongoDB 复制集机制及原理
    MongoDB 聚合查询
    C#中时间相关知识点小结
    C#中的小数和百分数计算
    WPF使用VisualTreeHelper进行复杂命中测试
    WPF使用VisualTreeHelperj简单进行命中测试
    WPF Data Binding数据驱动
    WPF Binding中的RelativeSource属性
    WPF特效:流光动画效果
  • 原文地址:https://www.cnblogs.com/KrisYzy/p/11151334.html
Copyright © 2020-2023  润新知