如何使用文本文件进行计算并将总和保存在同一文本文件中

时间:2017-04-14 15:51:54

标签: python

我想使用文本文件和用户输入进行计算,我想要求用户输入一个数字减去,然后我想要使用文本文件中的数字,并从用户提供的数字中减去它将总和保存在原始编号所在的同一文本文件中。问题是我不知道如何做到这一点,例如我的文本文件中有数字13,说用户输入4总和将是9,我希望9保存在同一文本中提交数字13,但我不知道如何做到这一点。我尝试使用file.write函数,但没有成功。

我也不太确定如何比较if / else语句或while语句中的文本文件的值。

这是我到目前为止所做的事情,我道歉它可能没有任何意义,我只需要它就像我希望它一样工作。

number = int(input('Please enter the number you would like to minus'))
d = open("numberfile.txt","r+")           
d.write(int(d.read()) - int(number)) 
d.close()

每当我运行它时,它说write参数必须是str而不是int,但是当我将它更改为str时它表示操作 - 不支持。

1 个答案:

答案 0 :(得分:0)

您应该始终使用with打开文件,因为这会处理文本关闭等文件。

您应该尝试将用户和输入文件的输入转换为int

import sys

input = input('Please enter the number you would like to minus\n')
try:
    number = int(input)
except ValueError as e:
    print('Error: ' + str(e))
    print('Input not a integer, but ' + str(type(input)))
    sys.exit(1)

io_file = "numberfile.txt"
with open(io_file,"r") as f:
    input_from_file = f.read()

try:
    number_from_file = int(input_from_file)
except ValueError as e:
    print('Error: ' + str(e))
    print('Input not a integer, but ' + str(type(input_from_file)))
    sys.exit(1)

result = number_from_file - number
with open(io_file,"w") as f: 
    f.write(str(result))