terminate.jpg

首页

技术分享

python translate库处理文件时的坑

背景:

因为要处理tmx文件,从某个犄角旮旯找到了标题里提到的一个python库,其实就是个xml的封装库。

业务需要从文件读取流来处理,结果却说不支持 TextIOWrapper类,需要处理一下才能使用

from translate.storage.tmx import tmxfile

fp = open('xxx.tmx', 'r')
tmxobj=tmxfile(fp)
# 以上代码时报错的,因为tmxfile函数不支持直接从文件读出来的的这个 TextIOWrapper类,需要转成FileStorage类才能处理

#==========================
#新的代码:
from werkzeug.datastructures import FileStorage
from translate.storage.tmx import tmxfile

fp = open('xxx.tmx', 'rb')
fs = FileStorage(fp)
tmxobj=tmxfile(fs)

需要注意的时,要把TextIOWrapper转成 FileStorage, open的mode必须为 'rb' 而不能时 'r'

Comments:

captcha