尝试从文件中添加数字会将其加载并将其放入另一个文件中

时间:2016-08-04 16:12:16

标签: python file

file = open("byteS-F_FS_U.toff","r")
f = file.readline()
s = file.readline()
file.close()
f = int(f)
s = int(s)
u = s - f
file = open("bytesS-F_FS_U","w")
file.write(float(u) + '\n')
file.close()

这就是我在运行代码时所说的内容:

f file.write(float(u) + '\n') TypeError:
unsupported operand type(s) for +: 'float' and 'str'

我正在尝试从每隔几秒钟获取新数字的文件中加载数字。 当他们重新加载时,他们会被减去并放入另一个文件中。我是一个新的python程序员。

2 个答案:

答案 0 :(得分:0)

首先,您需要填写您尝试打开的文件的完整路径!

首先解决了这个问题,我创建了一个循环程序,它每隔10秒打开一次文件并将结果写入另一个文件。处理异常,因此如果另一个进程在打开/读取时写入文件,则不会崩溃。 Python 3语法。

import time

while True:
    try:
        file = open(r"fullpath_to_your_file\byteS-F_FS_U.toff","r")
        f = int(file.readline())
        s = int(file.readline())
        file.close()
    except Exception as e:
        # file is been written to, not enough data, whatever: ignore (but print a message)
        print("read issue "+str(e))
    else:
        u = s - f
        file = open(r"fullpath_to_your_file\bytesS-F_FS_U","w")    # update the file with the new result
        file.write(str(u) + '\n')
        file.close()
    time.sleep(10)  # wait 10 seconds

答案 1 :(得分:0)

你不能做float + string,那么你应该做像:

"{0}\n".format(float(u))