使用dxfgrabber库在Python中解析dxf文件
我想用dxfgrabber这个库来解析dxf文件,以获取里面的对象(比如线、点、文字等等)。
下面是我的代码:
#!/usr/bin/env python
import dxfgrabber
dxf = dxfgrabber.readfile("1.dxf")
print ("DXF version : {}".format(dxf.dxfversion))
但是它出现了一些错误……
Traceback (most recent call last):
File "parsing.py", line 6, in <module>
dxf = dxfgrabber.readfile("1.dxf")
File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/__init__.py", line 43, in readfile
with io.open(filename, encoding=get_encoding()) as fp:
File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/__init__.py", line 39, in get_encoding
info = dxfinfo(fp)
File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 96, in dxfinfo
tag = next(tagreader)
File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 52, in __next__
return next_tag()
File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 45, in next_tag
raise StopIteration()
StopIteration
这个简单的1.dxf文件只包含了一条线。
文件链接是 https://docs.google.com/file/d/0BySHG7k180kETlQ2UnRxQmxoUk0/edit?usp=sharing
这是dxfgrabber库的bug吗?有没有其他好的库可以在Python中解析dxf文件?
我使用的是dxfgrabber 0.4和Python 2.7.3。
2 个回答
0
你只能读取用AutoCAD格式制作的dxf文件!可以试试“DraftSight”,这是一个免费的AutoCAD克隆软件,导出的dxf文件效果很好。建议使用dxf R12格式。这样可以解决你的问题。
4
我联系了开发者,他说在当前版本0.5.1中,把__init__.py
文件的第49行改成这样:with io.open(filename) as fp:
。这样就能正常工作了(之前缺少了io
)。他会在不久的将来在版本0.5.2中正式发布这个修正。