我正在尝试从Juniper路由器获取配置,但遇到以下问题:
设置好这个之后
stdin, stdout, stderr = client1.exec_command('show configuration interfaces %s' % SID)
CONFIG = stdout.read()
print CONFIG
它给我带来了这样的东西
'description El_otro_Puerto_de_la_Routing-instance;\nvlan-id 309;\nfamily inet {\n mtu 1600;\n address 10.100.10.10/24;\n}\n'
问题是我想以这种格式接收该信息:
'description El_otro_Puerto_de_la_Routing-instance;
nvlan-id 309;
nfamily inet {
mtu 1600;
address 10.100.10.10/24;
}
因此,我希望\n实际上是一个新行,而不仅仅是向我显示“\n”字符串。
正则表达式有助于定位\x
序列。不过,替换对仍然需要手动指定,就像@PedroCastilho的答案一样。
import re
CONFIG = stdout.read()
print(re.sub(r'\\.',lambda x:{'\\n':'\n','\\t':'\t'}.get(x[0],x[0]),CONFIG))
这将用实际的换行符和制表器替换\\n
-s和\\t
-s,并保持未知的不变。
喜欢
print(re.sub(r'\\.',lambda x:{'\\n':'\n','\\t':'\t'}.get(x[0],x[0]),
'foo\\nbar\\nbaz\\tbrr\\n\\q'))
印刷品
foo
bar
baz brr
\q
因此,换行符和制表符已经到位,\q
只是幸存下来。
如果您在Python解释器中运行它,解释器的常规行为是将换行符显示为“\n”而不是实际的换行符,因为这样更容易调试输出。如果你想在解释器中得到实际的换行符,你应该< code>print你得到的字符串。
如果这是程序输出的内容(即:您从外部程序获得换行符转义序列),您应该使用以下内容:
OUTPUT = stdout.read()
formatted_output = OUTPUT.replace('\\n', '\n').replace('\\t', '\t')
print formatted_output
这将用输出字符串中的实际换行符替换转义的换行符。
问题内容: 我正在用Python解析文件中的文本。我必须替换所有换行符(\ n), 因为此文本将生成html-content。例如,这是文件中的一些行: 现在我做: 而且我仍然看到带有换行符的文本。 问题答案: 只是踢,你也可以 用替换字符串中的所有换行符。
在编辑器中查看文件时。
问题内容: 对于几种语言,已经多次询问了此信息,但我无法使其正常工作。我有这样的字符串 而且我想,以取代与使用 但不会被替换。我试图使用此RegEx工具进行验证,但看到的结果相同。输入的字符串不匹配。我究竟做错了什么 ? 问题答案: 这个对我有用。 结果: 您的问题在其他地方。
问题内容: 我是Oracle的新手,我正在尝试做一些不寻常的事情。给定此表和数据,我需要选择每一行,并复制DupCount大于1的行。 所需结果: 如果通过单个select语句无法做到这一点,那么对存储过程的任何帮助将不胜感激。 问题答案: 您可以使用分层查询来做到这一点: SQL小提琴 查询1 : 结果 :
问题内容: 我有一个张贴表单,可将我的文本插入MySQL数据库。 我用 并希望替换自动添加的。 我试过了 但始终包含在我的数据库条目中。 我怎样才能解决这个问题? 问题答案: 您尝试过的所有变体的主要问题在于,这两个和都是转义字符, 只有在双引号字符串中使用它们时才会转义 。 在PHP中,和之间有很大的区别。注意第一个中的单引号,第二个中的双引号。 因此: 将产生一个包含斜杠,“ r”,另一个
问题内容: 我想使用命令用新行(\ n)替换所有出现的字符串“ \ n”。 我试过了,但这似乎匹配任何’'和任何’n’ 问题答案: 这是使用以下方法的方法: 用法示例: 要就地替换文件中所有出现的内容: 替换所有通过管道出现的事件,并保存到另一个文件中