Python,从input()中删除所需的引号

时间:2013-04-23 17:44:39

标签: python

好的,我一直在编写一个脚本,但是输入部分会发生令人讨厌的事情。根据我的python版本,我需要为我的输入包含引号,否则我不需要。使用python 2.7,我需要引号;用python 3.3,我没有。例如:

filename = input('Enter Update File: ')
print(filename)

使用python 2.7,我需要用引号包围我的输入,否则会引发NameError;在python 3.3中,我没有。

有没有办法避免这种情况?

1 个答案:

答案 0 :(得分:12)

在Python 2.x上,您需要使用raw_input()而不是input()。在旧版本的Python上,input()实际上会评估您将键入的内容作为Python表达式,这就是您需要引号的原因(就像您在Python程序中编写字符串一样) )。

Python 3.x和Python 2.x之间存在许多差异;这只是其中之一。但是,您可以使用以下代码解决此特定差异

try:
    input = raw_input
except NameError:
    pass

# now input() does the job on either 2.x or 3.x