0

以前に次のようなステートメントを使用したことがありますが、同様のものを使用しようとするとエラーが返されます....

  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:

どんな考えでも大歓迎です。

4

2 に答える 2

7

その前の行を見てください。括弧またはブラケットが欠落しています。

それ、またはまったくサポートしていない python バージョンを使用しているwith場合、構文は python 2.6 まで導入されませんでした。

于 2012-09-14T16:06:10.007 に答える
0

Python 2.4 と 2.7 の両方で試してみましたが、2.4 では同じエラーが発生し、2.7 では発生しないようです。

Python 2.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

パイソン 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 2.4 で open を使用しようとしています。

于 2012-09-14T17:13:37.503 に答える