首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从文件中收集数据作为实际数字而不是Python中的字符串?

如何从文件中收集数据作为实际数字而不是Python中的字符串?
EN

Stack Overflow用户
提问于 2019-06-07 19:53:41
回答 1查看 39关注 0票数 0

我是Python的初学者,我正在尝试制作一个小程序来记录一定金额的变化。我可以从文件(Amount.txt)中获取数据,但不能添加或减去它。程序将Amount.txt中的数字识别为字符串,而不是实际数字。我尝试使用int()命令,但我不知道将该命令放在何处,甚至不知道是否需要它。当我使用int()命令时,会发出一条错误消息,声明“TypeError:不受支持的操作数类型(S) for +:'int‘和’str‘”,如何解决这个问题?

代码语言:javascript
复制
def add(x, y):
    return x + y
def money(xy):
    f = open("Amount.txt", "r").read()
    newamount = add(f, xy)
    f = open("Amount.txt", "w").write(newamount)
    f.close
while True:
    dollars = open("Amount.txt", "r").read()
    print("Current Updated Total: ($" + dollars + ")")
    num = input("Transition: ")
    money(num)

我试图让程序要求用户提供一个数字,其中它将增加的总金额,然后重写Amount.txt,以包含新的总和。例如,如果总数为5,用户键入5,则新的总数将为10。Amount.txt还将包含数字10而不是5。然而,实际结果如下:总计为5,用户将键入5,新的总计将为55。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 20:02:45

假设Amount.txt包含一个整数,例如,42,使用int()将字符串强制转换为int,正如您所提到的:

代码语言:javascript
复制
f = open("Amount.txt", "r").read()
f = int(f)

您还需要多次打开文件,在以不同的模式重新打开文件之前关闭它可能不是个好主意。完整脚本:

代码语言:javascript
复制
def add(x, y):
        return x + y

def money(xy):
    fh = open("Amount.txt", "r")
    f = int(fh.read())
    fh.close()
    newamount = add(f, xy)
    fh = open("Amount.txt", "w")
    fh.write(str(newamount))
    fh.close()

while True:
    fh = open("Amount.txt", "r")
    dollars = int(fh.read())
    fh.close()
    print("Current Updated Total: (${0})".format(dollars))
    num = input("Transition: ")
    money(num)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56500517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档