在\ python中将\ n视为原始文本?

时间:2012-11-02 00:37:45

标签: python

问题,所以我现在需要在数据包中发送\ 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

错误^

2 个答案:

答案 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