当前位置: 首页 > 知识库问答 >
问题:

将文本替换为其中的\n,使用真实的\n输出[重复]

鞠修雅
2023-03-14

我正在尝试从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”字符串。

共有3个答案

严天逸
2023-03-14

正则表达式有助于定位\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 只是幸存下来。

隗锐进
2023-03-14

python 3中,解释所有转义字符的最佳方法是:

print(f"{yourStringHere}")

这使用了f弦,在我看来,这可能是解决这个问题的最优雅的方法。

祖麻雀
2023-03-14

如果您在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’ 问题答案: 这是使用以下方法的方法: 用法示例: 要就地替换文件中所有出现的内容: 替换所有通过管道出现的事件,并保存到另一个文件中