a='\nu + \lambda + \theta'
d=a.encode('string_escape').replace('\\\\','\\')
print(d)
# \nu + \lambda + \theta
Это показывает, что перед n
, l
и t
:
print(list(d))
# ['\\', 'n', 'u', ' ', '+', ' ', '\\', 'l', 'a', 'm', 'b', 'd', 'a', ' ', '+', ' ', '\\', 't', 'h', 'e', 't', 'a']
есть одна обратная косая черта с обратной связью. , Вот простой пример захвата некоторого пользовательского ввода через Tkinter.Entry
. Обратите внимание, что только что найденный текст имеет только обратную косую черту перед n
, l
и t
. Таким образом, дополнительная обработка не требуется:
import Tkinter as tk
def callback():
print(list(text.get()))
root = tk.Tk()
root.config()
b = tk.Button(root, text="get", width=10, command=callback)
text=tk.StringVar()
entry = tk.Entry(root,textvariable=text)
b.pack(padx=5, pady=5)
entry.pack(padx=5, pady=5)
root.mainloop()
Если вы введете \nu + \lambda + \theta
в поле ввода, консоль (правильно) напечатает:
['\\', 'n', 'u', ' ', '+', ' ', '\\', 'l', 'a', 'm', 'b', 'd', 'a', ' ', '+', ' ', '\\', 't', 'h', 'e', 't', 'a']
Если ваш графический интерфейс не возвращает похожие результаты (как кажется, кажется, ваш пост), то я бы рекомендовал изучить проблему с графическим интерфейсом, а не сбрасывать string_escape
и строку replace
.