Python 读文件:IOError: [Errno 0] Error

Windows系统下,这种情况发生在读取文件,再写入过程中出现。

原因是读完文件后python不知道当前文件位置在哪里。

方法一是:在关闭文件前只做读或者写一种操作。

方法二是:在写入文件前使用file.seek()函数,指定插入/读取文本的位置

一点的方法是在写入文件前用fseek(),或者fsetpos()设定插入文本的位置。

seek(offset[, whence])    

whence    0:表示当前文件位置在文件开头

       1:表示在上次read后的地方

       2:表示在文件末尾

offset   偏移量

在写入/读取文件前加上file.seek(0,  2)

file = open('test.txt', "r+")

content = file.read() # 不指定长度,直接读取所有内容
print(content)

file.seek(0, 2) # 指定从当前文件中的数据的末尾开始写
file.write("winter snow") # 开始写的位置有当前的光标位置决定

file.seek(0) # 指定从头开始读取文件中的数据
content_1 = file.read() # 不指定长度,直接读取所有内容
print(content_1)

原文地址:https://www.cnblogs.com/coxiseed/p/9259340.html