码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-07-06 16:21:22      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:内容   网上   tar -xvf   打开   写入   运行   seek   解决   解决方法   

问题:用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())

 

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

标签:内容   网上   tar -xvf   打开   写入   运行   seek   解决   解决方法   

原文地址:https://www.cnblogs.com/will-wu/p/13255124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!