2016-09-13 46 views
0

我正在使用pdfminer工具將pdf轉換爲.csv(文本),並且工具pdfinterp.py中的一個子命令仍然使用CStringIO和StringIO字符串到字符串轉換 -在Python 3中解決以前的CStringIO和字符串IO函數Pdfinterp(Pdfminer)

import re 
try: 
    from CStringIO import StringIO 
except ImportError: 
    from StringIO import StringIO 

我使用Python 3,所以我意識到需要更改爲io和io.StringIO。

究竟應該怎樣上面的命令進行重新措辭在pdfinterp,使其功能在Python 3

回答

0

可以擴展您的進口塊,使其與所有版本(的Python 2.x或3.x的兼容)。醜陋的,因爲所有的try/except塊,但將努力

try: 
    from CStringIO import StringIO 
except ImportError: 
    try: 
     from StringIO import StringIO 
    except ImportError: 
     from io import StringIO 

或(稍好)

import sys 
if sys.version_info < (3,) 
    try: 
     from CStringIO import StringIO 
    except ImportError:   
     from StringIO import StringIO 
else: 
    from io import StringIO 

要知道,蟒蛇3具有BytesIO也因爲二進制數據和文本數據現在是不同的。所以如果使用StringIO來傳遞二進制數據,它將會失敗。

+0

通過它與您的第一個建議 - THX –

+0

如果它的工作,請接受答案。 –