问题,所以我现在需要在数据包中发送\ n,但是python将其视为EOL。我怎么能告诉它将原始文本和数据包的一部分完全对待?
logcom = "LOGON\n Protocol-Version: 2.0\n App-type: Windows x86\n Operator: PC_CLIENT\n name: " + pal_user + "\n capabilities: 4\n"
我需要在一个数据包中发送所有数据包,但是当数据包有多行时它会将\ n视为EOL,但当它只是LOGON \ n
时它不会 socket.sendall("'LOGON\n
^
SyntaxError: EOL while scanning string literal
错误^
答案 0 :(得分:2)
你几乎肯定在一条线上缺少收盘报价。只需使用它:
logcom = "LOGON\n Protocol-Version: 2.0\n App-type: Windows x86\n Operator: PC_CLIENT\n name: " + pal_user + "\n capabilities: 4\n"
socket.sendall(logcom)
如果你想在源代码中将它分成几行,就像在你的问题中一样,你应该用三引号将它写成:
logcom = """LOGON
Protocol-Version: 2.0
App-type: Windows x86
Operator: PC_CLIENT
name: {}
capabilities: 4
""".format(pal_user)
socket.sendall(logcom)
答案 1 :(得分:1)
如果你需要在'\ n'中发送'\',那么你需要做的只是逃避角色。因此,你应该发送:
logcom = "LOGON\\n Protocol-Version: 2.0\\n App-type: Windows x86\\n Operator: PC_CLIENT\\n name: " + pal_user + "\\n capabilities: 4\\n"
如果您需要发送包含换行符的数据,我会尝试在循环中使用socket.send
。