项目中执行代码如:
f = open(filename).read()
...
f.close()
报 'str' object has no attribute 'close'的错误 。
f是一个字符串变量,它包含文件的内容 - 它与文件无关。
正确的文件对象应该是指向open(filename)
文件对象在文件对象退出范围后关闭(在这种情况下,紧跟在.read()之后),也就是open(filename).read()之后文件对象已关闭,而f是字符串,包含文件的内容。
所以上述代码应该改为:
f = open(filename)
file_content = f.read()
...
f.close()
此时不会报错。