4

我有以下内容:

with open("c:\xml1.txt","r") as f1, open('c:\somefile.txt','w') as f2:

这给出了一个语法错误:

with open("c:\xml1.txt","r") as f1, open('c:\somefile.txt','w') as f2:
                                      ^
SyntaxError: mismatched input ',' expecting COLON

我正在使用依赖于 jython 2.5.1 的 netbeans python 插件

我已经添加了:

from __future__ import with_statement

但这并没有改变任何东西。

关于做什么的任何建议?

谢谢

4

2 回答 2

6

多上下文管理器的语句只在python2.7中增加,见文档

对于 jython2.5,您需要from __future__ import with_statement启用单上下文管理器功能。

编辑:

有趣的是,甚至 jython2.7b2 都不支持多个上下文管理器。

你可以做的是嵌套上下文:

with open("c:/whatever") as one_file:
    with open("c:/otherlocation") as other_file:
        pass  #  or do things
于 2013-05-15T18:03:56.570 回答
0

在您的文件路径中,您在几个地方都有“\”,\x 通常用于表示十六进制字符。尝试使用带有“r”的原始字符串或使用另一个反斜杠转义反斜杠。

with open(r"c:\xml1.txt","r") as f1, open(r'c:\somefile.txt','w') as f2:

或者

with open("c:\\xml1.txt","r") as f1, open('c:\\somefile.txt','w') as f2:
于 2013-05-15T18:05:01.747 回答