• 使用r+、w+、a+ 三种模式打开文件时显示的是空白内容


    问题:用r+、w+、a+三种模式的其中一种打开有内容的文件,代码运行后结果显示空白

    示例代码:

    with open('filename','r+') as f:
        f.write('tar -xvf filename')
        print(f.read())
    ================================
    运行结果是:空白
    打开文件查看,有内容

    最终的执行结果是输出空,为什么

    网上搜了一下说:a+模式打开文件指针在文件结尾处,所以直接读是读不到内容的

    问题是指针在文件结尾处,读取文件内容是从指针出开始读取的,而指针在文件末尾,读取到的当然是空的

    解决方法

    读取文件前把指针指向位置移到文件开头就行

    用tell()方法可以查看文件指针的位置,当tell()返回的是0,不是其他数字,就代表指针位置在文件开头,此时可以读取到文件全部内容

    用seek()方法可以把指针位置移到到文件开头(0表示文件开头;1表示当前位置;2表示文件末尾)

    解决代码:

    # with语句打开文件
    with open('filename','a+') as f:
        # 给文件写入内容
        f.write('tar -xvf filename')
        # 查看文件指针位置
        print(f.tell())
        # 把指针位置移到开头
        f.seek(0)
        # 读取文件内容
        print(f.read())

  • 相关阅读:
    retofit、ButterKnite
    [iOS笔记]Swift中的Optional类型
    [iOS笔记] 网络通信安全与证书
    [iOS]ReactiveCocoa playground配置
    NAT学习笔记
    [iOS学习笔记]runloop runMode方法调研
    Python 装饰器简单介绍
    cookie实现自动登陆原理
    iOS开发添加Reveal工具
    【iOS Programming: The Big Nerd Ranch Guide】【笔记】2
  • 原文地址:https://www.cnblogs.com/will-wu/p/13255124.html
Copyright © 2020-2023  润新知