如果用户输入一个包含转义字符的字符串(例如“Example\”或“C:\Users...),我想完全按原样接受它。换句话说,我试图规避抛出的语法错误处理上述输入时。
我觉得它应该很简单,但答案让我难以捉摸。有什么帮助吗?
编辑:我在 python 3
不要使用input()
; raw_input()
在接受字符串输入时使用。
input()
(在 Python 2 上)尝试将输入字符串解释为 Python,raw_input()
根本不尝试解释文本,包括不尝试将\
反斜杠解释为转义序列:
>>> raw_input('Please show me how this works: ')
Please show me how this works: This is \n how it works!
'This is \\n how it works!'
在 Python 3 上,使用 just input()
(这是 Python 2 的raw_input()
重命名);除非你也使用eval()
它不会解释转义码:
>>> input('Please show me how this works: ')
Please show me how this works: This is \n how it works!
'This is \\n how it works!'
如果您使用的是 python 2.7,请使用 raw_input() ,它接受带有特殊字符的字符串。
示例程序
$vi demo.py
str1=raw_input("Enter the file with full path : ")
print "Given Path is : ",str
save and quit from vi editor
Output
$python demo.py
Enter the path :/home/ubuntu/deveops
Given path is : /home/ubuntu/deveops
$ python demo.py
Enter the path :\home\ubuntu\deveops
Given path is : \home\ubuntu\deveops
如果您使用的是 python3,请使用 input(),它接受带有特殊字符的字符串,因为 python3 没有 raw_input() 函数
$vi demo1.py
str1=input("Enter the file with full path : ")
print ("Given Path is : ",str1)
save and quit from vi editor
Output
$python demo1.py
Enter the path :/home/ubuntu/deveops
Given path is : /home/ubuntu/deveops
$ python demo1.py
Enter the path :\home\ubuntu\deveops
Given path is : \home\ubuntu\deveops
处理输入时,使用eval()
函数。将输入eval()
作为参数传递给函数。例如:Python 3
x=input()
x=eval(x)
或者
x = eval ( input() )
input the following value:
\N{superscript two}
print ( x )
输出:
²