使用\ r \ n的Python中的字符串不会在SCADA标记中呈现回车换行符

时间:2018-06-01 15:45:27

标签: python scada-ignition

我有一个python脚本,我一次构建一个字符串。我在字符串的每一行的末尾添加'\ r \ n',但最后一行除外。该字符串被写入Ignition SCADA中的标签。当我检查标签的内容时,'\ r \ n'应该创建回车符/换行符,我只有一个空格('')。

知道为什么这样做会这样做以及我能做些什么才能让字符串正确格式化?

谢谢!

编辑: 这是代码:

myStr = ''
for i in range(1, 10):
    myStr += 'This is line ' + str(i) + '.\r\n'
resp = system.tag.write('myStrTag', myStr)
print myStr

1 个答案:

答案 0 :(得分:0)

点火正在清除这些字符串标签的输入。您不能有多行字符串,但是它“知道”您想要包含的字符串。因此,它将您的输入转换为空格字符,而不是将其保留为原义的“ \ r \ n”。如果需要的话,可以包含两个反斜杠字符。

myStr += 'This is line ' + str(i) + '.\\r\\n'

如果您希望字符串实际在屏幕上显示为多行,则需要将其格式化为HTML字符串。这是Ignition用于存储和显示具有其他格式的字符串的方法。它实际上工作得很好,并且可以理解大多数HTML和CSS属性。下面提供了一个示例。

myStr = '<html>'
for i in range(1, 10):
    myStr += 'This is line ' + str(i) + '<br>'
myStr += 'This is the final line' + '</html>'
resp = system.tag.write('[default]Development/String Testing', myStr)
print myStr