我有:
filename = input()
with open(filename) as file:
print('It opened.')
在我的桌面上保存为“test.py”。
我从终端运行它,然后得到:
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
当我在shell中运行它时,它完美地运行:
>>> ================================ RESTART ================================
>>>
/users/rickyd/desktop/tryme.txt
It opened.
>>>
为什么它不在终端工作?
有没有办法确保(至少对于未明确设计的代码而言) shell和终端会给出相同的行为,所以我不必单独检查它们吗?
答案 0 :(得分:4)
您需要像
一样运行python3 /users/rickyd/desktop/test.py
它应该有用
答案 1 :(得分:3)
当您在终端中运行它时,您正在使用Python 2运行它。这就是它无效的原因。
你在哪个操作系统,以及如何运行它?
答案 2 :(得分:1)
您可以通过键入以下内容来检查命令行Python的版本:
C:\work>python -V
Python 2.7.1
(这是一个大写的V)或者只是输入没有选项的python并查看交互式提示消息开头显示的版本号。这似乎是2.x与3.x问题,因为3.x中的input()等同于2.x中的raw_input()(在2.x中,input()函数读入并评估输入为python代码,这就是你得到“无效语法”错误的原因。)