Python语法错误。。。不知道为什么

Python语法错误。。。不知道为什么,python,syntax,Python,Syntax,我以前使用过如下语句,但是当我尝试使用类似的语句时,它会返回一个错误 File "test.py", line 73 with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4: ^ SyntaxError: invalid syntax 带上一行的语法: if hostName

我以前使用过如下语句,但是当我尝试使用类似的语句时,它会返回一个错误

  File "test.py", line 73
    with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4:
            ^
SyntaxError: invalid syntax
带上一行的语法:

if hostName != "*" and hostIP != "*":
  with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4:
任何想法都会受到欢迎。

请看前面的几行,括号或括号将丢失


或者你的python版本根本不支持
,直到Python2.6才引入语法。

我在Python2.4和2.7上都试过了,似乎相同的错误发生在2.4上,在2.7上没有

Python2.4-我确实得到了与您完全相同的错误

Python 2.4.3 (#1, Nov  3 2010, 12:52:40) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if hostName != "*" and hostIP != "*":
...   with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4:
  File "<stdin>", line 2
    with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4:
            ^
SyntaxError: invalid syntax
python2.4.3(#12010年11月3日12:52:40)
linux2上的[GCC 4.1.2 20080704(Red Hat 4.1.2-48)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>如果主机名!=“*”和hostIP!="*":
...   将open(hostsTxt,'a+')作为f1,将open(hostsCSV,'a+')作为f2,将open(hostNameLook,'a+')作为f3,将open(webHostsTxt,'a+')作为f4:
文件“”,第2行
将open(hostsTxt,'a+')作为f1,将open(hostsCSV,'a+')作为f2,将open(hostNameLook,'a+')作为f3,将open(webHostsTxt,'a+')作为f4:
^
SyntaxError:无效语法
Python 2.7

Launching python -O
Python 2.7.2 (default, Apr 17 2012, 22:01:25) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> hostIP ='localhost'
>>> hostName = 'abcd'
>>> if hostName != "*" and hostIP != "*":
...   with open(hostsTxt, 'a+') as f1, open(hostsCSV,'a+') as f2, open(hostNameLook, 'a+') as f3, open(webHostsTxt,'a+') as f4:
...     print 'testing'
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: name 'hostsTxt' is not defined
启动python-O
Python 2.7.2(默认,2012年4月17日,22:01-25)
linux2上的[GCC 4.1.2 20080704(Red Hat 4.1.2-48)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>hostIP='localhost'
>>>主机名='abcd'
>>>如果主机名!=“*”和hostIP!="*":
...   将open(hostsTxt,'a+')作为f1,将open(hostsCSV,'a+')作为f2,将open(hostNameLook,'a+')作为f3,将open(webHostsTxt,'a+')作为f4:
...     打印“测试”
... 
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
名称错误:未定义名称“hostsTxt”

据我所知,您正在尝试使用不受支持的Openwith python 2.4。

也可能是缩进放错了位置,或者您忘记了使用制表符而不是空格。您能再提供几行上下文吗?@squiguy:这通常会导致缩进错误。
。您使用的是哪个版本的python?我猜是2.5.6或更早;我可以匹配错误消息(甚至到克拉指向打开的“n”)。这是一行(见上面的编辑)上下文与前面的行。。。我上下查看了脚本,没有使用双空格上的制表符,也没有检查空格和括号……使用
python-tt scriptname.py
测试缩进。从那条线看不出什么明显的东西,可能在那之前,应该是两个空间indents@MHibbin:那么问题不在于缩进(尽管我认为两个空格的缩进是不可读的)。我想可能就是这个问题。。。系统上有两个python实例(一个可能是2.4,但不是2.7)。我通常使用的实例是用py2.7打包的。我会在工作中测试的是的,这就是问题所在!非常感谢。我将来测试时必须记住这一点