抱歉,我是Python和程序设计的初学者,所以这可能很基础。我想编写一个打开文件并返回内容的函数。如果文件的内容可以解释为-整数,以整数形式返回内容。-否则,如果文件的内容可以解释为浮点数,则将内容返回为浮动。-否则,以字符串形式返回文件的内容。
文件只有一行。
我已经尝试过类似的事情:
def load_file(filename):
my_file= open(filename, "r")
my_var = my_file.readline()
try:
my_var = int(my_var)
except:
ValueError
try:
my_var = float(my_var)
except:
ValueEror
pass
else:
my_var = my_var
my_file.close()
return my_var
并且它适用于int和float,但不适用于str作为文件中的一行。然后我得到一个NameError: 'ValueEror'
未定义
您能帮我吗?
谢谢
您不正确地使用了try-except
语句。您必须捕获ValueError
,因此您可能必须通过以下方式进行此操作,
try:
# TODO: execute some code that might have a chance of throwing exceptions
except ValueError:
# TODO: handle the error
要了解有关在python中处理异常的更多信息,请参考python docs
问题出在第二个ValueError
的错字中,并且缩进不正确:
像这样,它对我有用:
def load_file(filename):
my_file= open(filename, "r")
my_var = my_file.readline()
try:
my_var = int(my_var)
except:
ValueError
try:
my_var = float(my_var)
except:
ValueError
pass
else:
my_var = my_var
my_file.close()
return my_var