我一直在阅读问题[Errno 22]参数无效

时间:2016-08-04 18:32:26

标签: python windows

我试过把(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

1 个答案:

答案 0 :(得分:0)

这里有两个不同的错误。

1:带转义字符的文件名

此错误:

  

阅读问题[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"

你已经尝试过第二种方法,它解决了这个问题。

2:Write()

上的TypeError

下一个错误:

  

file.write(float(u)+'\ n')TypeError:不支持的操作数类型   +:'float'和'str'。

在write()函数中。

您将浮动视为字符串。在尝试附加换行符之前,您需要将其转换为字符串:

file.write(str(float(u)) + '\n')

或使用字符串格式:

file.write("%f\n" % (float(u)))