标签:内容 网上 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())
标签:内容 网上 tar -xvf 打开 写入 运行 seek 解决 解决方法
原文地址:https://www.cnblogs.com/will-wu/p/13255124.html