文件输入-更改数据类型

问题描述 投票:0回答:1

抱歉,我是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'未定义

您能帮我吗?

谢谢

python file-io
1个回答
0
投票

您不正确地使用了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


0
投票

问题出在第二个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
© www.soinside.com 2019 - 2024. All rights reserved.