我试过把(r"F:\Server\ ... "r")
说出来:
file.write(float(u) + '\n') TypeError: unsupported operand type(s) for +: 'float' and 'str'.
当我没有放r
时,它会加倍\\对我说:
read issue [Errno 22] Invalid argument: 'F:\\Server\\Frames\\Server_Stats_GUI\x08yteS-F_FS_Input.toff'.
这是我的代码
import time
while True:
try:
file = open("F:\Server\Frames\Server_Stats_GUI\byteS-F_FS_Input.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("F:\Server\Frames\Server_Stats_GUI\bytesS-F_FS_Output","w") # update the file with the new result
file.write(float(u) + '\n')
file.close()
time.sleep(4) # wait 4 seconds
答案 0 :(得分:0)
这里有两个不同的错误。
此错误:
阅读问题[Errno 22]参数无效: 'F:\服务器\框架\ Server_Stats_GUI \ x08yteS-F_FS_Input.toff'
在open()函数中。
您的文件名中包含转义字符。 '\ b'正被评估为'\ x08'(退格)。找不到该文件,这会引发错误。
要忽略转义字符,您可以加倍反斜杠:
"F:\Server\Frames\Server_Stats_GUI\\byteS-F_FS_Input.toff"
或使用r作为字符串的前缀:
r"F:\Server\Frames\Server_Stats_GUI\byteS-F_FS_Input.toff"
你已经尝试过第二种方法,它解决了这个问题。
下一个错误:
file.write(float(u)+'\ n')TypeError:不支持的操作数类型 +:'float'和'str'。
在write()函数中。
您将浮动视为字符串。在尝试附加换行符之前,您需要将其转换为字符串:
file.write(str(float(u)) + '\n')
或使用字符串格式:
file.write("%f\n" % (float(u)))