【问题标题】:take newline character as input以换行符作为输入
【发布时间】:2020-07-02 04:16:09
【问题描述】:

我有一个小脚本来查找和替换字符串,因为大多数文本编辑器无法为多个文件执行此操作。 当我将换行符(\n)作为输入传递时,python 将斜杠转换为双斜杠,并且不再保留换行符。所以,我的搜索和替换失败了。

++++++++++++++++++++++++++++++++++++++++

在此处添加建议的解决方案:

解决方案 1。

@徐秋实建议

from shlex import quote as q

from ast import literal_eval as le

a = le(q(input()))

允许按原样使用\n。

解决方案 2:

直接提供字典为 dict_a = {'।\s' : '।\n'}

等等。适合搜索。

【问题讨论】:

标签: python input newline


【解决方案1】:

解决方法:

a= input()
if (a == "\\n"):
  a="\n"
b = """hello
lad"""
print(a in b)

我不建议用户输入特殊字符

解决方案 2:

`a=input()
 if(a == "new"):
   a="\n"`

【讨论】:

  • 是的,看来除了将 \\n 替换为 \n 之外别无他法。
  • 现在,只要考虑一下,如果我必须为 \s \t 做这件事,无论如何,它会更麻烦。尝试使用 string_a.replace('\\', '\') 不起作用,使用 string_a.replace('\\', '"\\"') 会产生不希望的结果。这里有任何建议。
  • Python 会转换它,因为让用户输入特殊字符是个坏主意,可能会破坏程序
  • 所以,看来我必须按照@Xu Qiushi 的建议输入文字,而不是使用\n。但是,我想知道正则表达式搜索是否会起作用?
  • 是的,这已经足够了。顺便说一句,如果没有解决方案,那么提供 {search_string : replacement_string} 库是唯一的方法。
猜你喜欢
  • 2017-02-11
  • 2019-04-11
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 2015-12-06
相关资源
最近更新 更多