zoukankan      html  css  js  c++  java
  • python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)

    如下表

     
    
    
    模式 可做操作 若文件不存在 是否覆盖
    r 只能读 报错 -
    r+ 可读可写 报错
    w 只能写 创建
    w+  可读可写 创建

    a   只能写 创建 否,追加写
    a+ 可读可写 创建 否,追加写
    b

    表示要读写二进制数据,

    可与上面的模式组合。无b时以字符串数据形式操作

       
     
     

     1.只读模式(r)一个存在的文件:

     
    def file_operation():
        with open('/wzd/test.txt', mode='r') as f:
            # f.write('abc')
            r = f.readlines()
            print r
            print '---done---'
    
    file_operation()
     

    正常输出:

    2.只读模式(r)一个不存在的文件:

     
    def file_operation():
        with open('/wzd/test001.txt', mode='r') as f:
            # f.write('abc')
            r = f.readlines()
            print r
            print '---done---'
    
    file_operation()
     

    注意上面的文件名字变了,输出如下:

    3.只读模式去写文件:

     
    def file_operation():
        with open('/wzd/test.txt', mode='r') as f:
            f.write('abc')
            r = f.readlines()
            print r
            print '---done---'
    
    file_operation()
     

    seek

    seek(offset, whence)

    offset: 偏移量
    whence: 表示的是从哪个位置进行偏移,
    0: 表示开头, 默认值
    1: 表示当前位置,
    2: 表示结尾

    注意, 移动的单位是byte.
    所以如果是UTF-8的中文部分要是3的倍数.

    通常我们使用seek都是移动到开头或者结尾.
    seek(0, 0): 移动到开头
    seek(0, 2):移动到结尾

  • 相关阅读:
    关于git修改和查看用户名邮箱
    Spring深入理解(三)
    Spring深入理解(二)
    Spring深入理解(一)
    jeecg开源快速开发
    关于面向对象的三大特性和五大基本原则
    关于Excel导入导出POI工具类
    关于Hanoi算法
    LOJ 530 最小倍数(数论)
    BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)
  • 原文地址:https://www.cnblogs.com/linkenpark/p/10288918.html
Copyright © 2011-2022 走看看