开发者

input working in shell but not terminal

I have:

filename = input()
with open(filename) as file:
    print('It opened.')

saved on my desktop as "test.py".

I run it from the terminal, and get:

blahblahblah:~ rickyd$ python /users/rickyd/desktop/test.py
/users/rickyd/desktop/tryme.txt
Traceback (most recent call last):
  File "/users/rickyd/desktop/test.py", line 1, in <module>
    filename = input()
  File "<string>", line 1
    /users/rickyd/desktop/tryme.txt
    ^
SyntaxError: invalid syntax

When I run it in the shell, it works perfectly:

>>> ================================ RESTART ================================
>>> 
/users/rickyd/desktop/tryme.txt
It opened.
>>> 

Why isn't it working in the terminal?

Is there any way to make sure that (at least for code not explicitly designed to do otherwise) the shell 开发者_运维百科and the terminal will give the same behavior, so I won't have to check both separately?


You need to run like

python3 /users/rickyd/desktop/test.py

it should work


When you are running it in the terminal, you are running it with Python 2. That's why it doesn't work.

Which OS are you on, and how do you run it?


You can check the version of your command line Python by either typing:

C:\work>python -V
Python 2.7.1

(that's an upper case V) or just by typing python with no options and looking at the version number displayed at the start of the interactive prompt messages. This appears to be a 2.x vs. 3.x issue with the fact that input() in 3.x is equivalent to raw_input() in 2.x (in 2.x, the input() function reads in and evaluates the input as python code, which is why you get the "invalid syntax" error).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜