为什么我得到一个AttributeError:'NoneType'对象没有属性'read'?

时间:2016-11-20 12:17:55

标签: python python-2.7

print "Enter the name of the file", 
file= open(raw_input(":"),'w').write(raw_input("Enter the content:"))
print file.read()

作为回应,我得到AttributeError: 'NoneType' object has no attribute 'read'。请任何人都可以帮忙。

1 个答案:

答案 0 :(得分:1)

write()方法不返回任何内容,因此文件值为None。

你应该将open()函数的结果赋给文件变量,然后再调用write方法。

如果您正在使用:

open(path_to_file, 'w') 

您无法阅读此文件的内容。

当你打电话

file = open(some options) 

方法 你应该打电话

file.close() 

文件处理结束后。

但是在python中有关键字(例如文件类)在代码块执行结束后自动调用close()方法,即使发生了异常。 所以你的方法可以像这样实现:

def write_to_file_and_print_content():
    print("Enter the name of the file:")
    name_of_file = raw_input("")
    # Writing to file
    with open(name_of_file, 'w') as file_to_write:
        content_of_file = raw_input("Enter the content:\n")
        file_to_write.write(content_of_file)
        # after that file_to_write.close() is called
    with open(name_of_file, 'r') as file_to_read:
        print(file_to_read.read())
        # after that file_to_read.close() is called