Python 如何去掉多个空格并解释换行符

Python 如何去掉多个空格并解释换行符,python,whitespace,removing-whitespace,Python,Whitespace,Removing Whitespace,假设我输入了“你好,我的名字是\\n比尔” 因此,当我在一行上打印所有字母时,这些字母将合并在一起,并给我“你好,我的名字是\n比尔”。我希望它打印的是: Hello my name is Bill 到终端。您的问题是您没有换行符,您有两个反斜杠和一个n,即反斜杠被转义,因此拆分后您需要进行替换: In [10]: s = "Hello my name is \\n Bill" In [11]: print(" ".join(s.split())) Hello my name i

假设我输入了
“你好,我的名字是\\n比尔”

因此,当我在一行上打印所有字母时,这些字母将合并在一起,并给我
“你好,我的名字是\n比尔”
。我希望它打印的是:

Hello my name is
Bill

到终端。

您的问题是您没有换行符,您有两个反斜杠和一个
n
,即反斜杠被转义,因此拆分后您需要进行替换:

In [10]: s = "Hello   my    name  is \\n Bill"

In [11]: print(" ".join(s.split()))
Hello my name is \n Bill

In [12]: print(" ".join(s.split()).replace("\\n","\n"))
Hello my name is 
 Bill
或使用.decode(“字符串_转义”):


正如Kirby在一篇评论中提到的,如果您正在创建字符串,请不要转义反斜杠,如果数据来自另一个源,请使用上述方法之一。

什么?它正在工作。可能还想提到的是,输入字符串也可以只使用一个斜杠;如果OP手动指定输入,这可能有助于清理问题。
In [10]: s = "Hello   my    name  is \\n Bill"

In [11]: print(" ".join(s.split()))
Hello my name is \n Bill

In [12]: print(" ".join(s.split()).replace("\\n","\n"))
Hello my name is 
 Bill
In [15]: s = "Hello   my    name  is \\n Bill"

In [16]: print" ".join(s.split())
Hello my name is \n Bill

In [17]: print(" ".join(s.split()).decode("string_escape"))
Hello my name is 
 Bill