Python读取文件,然后将字符串转换为整数

2024-10-01 11:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有人知道如何读取文件并将输出的代码转换为整数而不是字符串。我遇到了几个不同的错误,当前的错误是“TypeError:'str'object不能解释为整数”。我已经搜索了几次信息,但没有任何结果。这是我的代码:

additionalBonusRates = open("additionalBonusRates.txt", 'r')
            global kluger_additional      
            kluger_additional = additionalBonusRates.readline('\n')
            global patrol_additional
            patrol_additional = additionalBonusRates.readline('\n')
            global territory_additional
            territory_additional = additionalBonusRates.readline('\n')
            additionalBonusRates.close()
            kluger_additional = int(kluger_additional)
            patrol_additional = int(patrol_additional)
            territory_additional = int(territory_additional)

Tags: 文件字符串代码readline错误整数globaladditional
3条回答

我没有足够的rep来评论,但是您的错误来自于将字符串参数传递给^{}

还有,为什么全球都是?你真的需要吗?如果不是完全必要的话,人们通常不赞成这样的全球声明。在

对于处理数字数据文件,我也建议您看看numpy

文件对象中没有readint函数。 您所做的是使用您自己的文件格式对数据进行经典的反序列化。在

我不知道您使用的是python2.7还是3.4,但请记住,File对象读取原始字符串,即字节数组。在

你这样做是正确的,但我建议你做一些改进:

  • 请避免使用全局变量:这会混淆程序员/维护人员。

  • 使用with语句打开并正确关闭文件。

  • 可以将反序列化封装在函数中,以屏蔽string到{}的转换。

  • 尽量遵循PEP8的建议,尽可能避免使用长名称。

下面是一个例子:

def read_add_bonus_rates(txt_path):
    with open(txt_path, 'r') as txt_file:
        kluger_add = int(txt_file.readline())
        patrol_add = int(txt_file.readline())
        territory_add = int(txt_file.readline())
    return (kluger_add, patrol_add, territory_add)

def main():
    rates = """\
    150
    160
    180
    """
    with open('rates.txt', 'w') as rates_file:
        rates_file.write(rates)
    print(repr(read_add_bonus_rates('rates.txt')))


if __name__ == '__main__':
    main()

看起来你用的是Python3。您得到的错误不是将字符串转换为整数,而是将'\n'传递给readline([n])调用。可选参数[n]是要读取的最大大小。您应该使用“rstrip”删除回车转换为int:

kluger_additional = int(additionalBonsuRates.readline().rstrip())

相关问题 更多 >