根据你提供的代码和错误提示,可以看出你在打开文件后使用了
w 模式来写入内容。在这种模式下,文件是以覆盖的方式打开的,意味着如果文件已经存在,则会被清空。因此,创建文件后立即尝试读取它是不可行的,因为文件中没有任何内容可读。
另外,使用
w 模式打开文件后,该文件对象只能进行写操作,而不能进行读操作,因此
f.readable() 返回 False。
由于文件已经被清空,所以无法使用
for each in f 进行迭代读取,因为文件已经为空。
如果你想要先写入文件,然后再读取文件的内容,可以考虑使用
a+ 模式打开文件,这将允许你进行追加写入和读取操作。修正后的代码如下:
- f = open('长安街', 'a+')
- f.write('I love FishC\n')
- f.seek(0) # 将文件指针移动到文件开头
- print(f.readable()) # True
- f.seek(0) # 再次将文件指针移动到文件开头
- for line in f:
- print(line.strip())
- f.close()
复制代码
在上述代码中,我们使用
a+ 模式打开文件,先写入内容,然后通过
f.seek(0) 将文件指针移动到文件开头,接着可以进行读取操作了。
如果问题已经解决,请设置最佳答案