我刚刚开始使用Python/Jython和SAX解析器(xml.sax
)。我编写了一个简单的内容处理程序作为测试。在
from __future__ import with_statement
from xml.sax import make_parser, handler
from xml.sax.handler import ContentHandler
class CountingHandler(ContentHandler):
def __init__(self):
self.counter = 0
def startElement(self, name, attrs):
self.counter += 1
def main(argv=sys.argv):
parser = make_parser()
h = CountingHandler()
parser.setContentHandler(h)
with open(argv[1], "r") as input:
parser.parse(input)
当我对某些文档(不是所有文档)运行此操作时,会出现一个错误:
^{pr2}$当我查看drv_javasax.py
的源代码时,似乎输入没有被识别为一个类似文件的对象,事实上是这样。
有什么办法解决这个问题吗?在
我想是这个错误:http://bugs.jython.com/issue1488。在Jython 2.5.2-b1中修复:http://www.jython.org/latest.html
当您在
with
语句后插入print type(input)
时,您看到了什么?在当您恢复到旧式的“try/finally”代码而不是“with”时,它是否适用于所有文件?在
工作的文件和不工作的文件有什么不同?在
如果将名称
input
更改为不隐藏内置函数的名称,会发生什么情况?在相关问题 更多 >
编程相关推荐