2013-02-28 61 views
2

我想用dxfgrabber庫解析用於獲取對象(線,點,文本等)的dxf文件。用python中的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。

回答

3

我聯繫了開發人員,他說在當前的版本0.5.1中使第49行的__init__.py如下:with io.open(filename) as fp:。 然後它工作(io失蹤)。 他很快就會在0.5.2版本中對此進行更正。

+0

這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](http://stackoverflow.com/questions/ask)來提問。一旦你擁有足夠的[聲望](http://stackoverflow.com/faq#reputation),你也可以[添加賞金](http://stackoverflow.com/privileges/set-bounties)來吸引更多的注意力。 。 – 2013-05-15 06:51:14

+0

@HinataHyuga:我編輯了我的答案。 – solarisman 2013-05-19 10:40:27

0

您只能讀取AutoCAD格式的dxf! 嘗試「DraftSight」這是一個免費的AutoCAD克隆,它很好地導出DXF文件。嘗試DXF R12格式。 這將解決您的問題。