我目前正在解决一些问题,我已经在这个问题上坚持了很长一段时间。我想不出怎样才能通过属性错误
在导致问题的函数中,我有另一个名为safeOpen的函数,它打开文件,但如果没有具有该特定名称的文件,则不会给出错误
def safeOpen(fileName):
try:
infile = open(fileName)
print('Opened')
except:
print('None')
在我的主要函数avgSpd中,我让用户输入文件名,然后用safeOpen打开它。但是,当程序读取该文件时,会出现以下错误:
AttributeError: 'NoneType' object has no attribute 'read'
。
我已经测试了safeOpen,看看这是否是问题所在,但仅测试safeOpen就表明safeOpen正在工作。任何帮助都将不胜感激
def avgSpd():
fileName = input('Enter the file name: ')
infile = safeOpen(fileName)
content = infile.read()
您没有在内部函数中返回
infile
变量。更正版本为:您的
safeOpen
没有return语句,因此avgSpd
函数中的infile
变量被设置为None尝试:
值得注意的是,最好使用上下文管理器(即“with”语句)确保文件被安全打开。如果文件存在,也可以使用os.path.exists()函数检查,而不是使用try/except
比如:
相关问题 更多 >
编程相关推荐