我正在学习python,我看到了处理文件流的'a +'模式。为什么我不能像下面的代码那样首先读取并检查文件是否包含任何内容,然后根据评估写?
with open('output.txt', 'a+') as logfile:
textOfFile = logfile.read()
if textOfFile != '':
logfile.write("\r\nFile contains text")
else:
logfile.write("\r\nFile is empty")
上面的代码给了我以下错误:
Traceback (most recent call last):
File "C:/Python27/scripts/testfile.py", line 22, in <module>
logfile.write("anything man")
IOError: [Errno 0] Error
我做错了什么或者这是不可能的?那么'a +'是什么意思?
答案 0 :(得分:1)
a +文件模式附加到文件而不覆盖它的当前内容。为了解决您的问题,您需要首先在读取模式下读取文件,这是默认设置:
text_r = open('text.txt').read()
text_a = open('text.txt', 'a+')
if text_r != '':
text_a.write('\r\nFile contains text')
text_a.close()
else:
text_a.write('\r\nFile is empty')
text_a.close()