0

如果用户输入一个包含转义字符的字符串(例如“Example\”或“C:\Users...),我想完全按原样接受它。换句话说,我试图规避抛出的语法错误处理上述输入时。

我觉得它应该很简单,但答案让我难以捉摸。有什么帮助吗?

编辑:我在 python 3

4

3 回答 3

6

不要使用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!'
于 2013-03-19T21:48:10.580 回答
0

如果您使用的是 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
于 2018-01-14T05:53:12.553 回答
0

处理输入时,使用eval()函数。将输入eval()作为参数传递给函数。例如:Python 3

x=input()
x=eval(x)

或者

x = eval ( input() )
input the following value:
\N{superscript two}

print ( x )

输出²

于 2020-01-28T17:38:10.987 回答