我正在使用Python解析xls文件,然后将该信息转换为SBML(XML版本)。
from mod2sbml import Parser
s = open('sbmltest3.mod', 'r').read()
p = Parser()
d = p.parse(s)
outfile2 = open('sbmlconvert.xml', 'w')
print >> outfile2, d.toSBML()
outfile2.close()
这是一个相当长的文件(> 3000行),当我打开.xml时,字符串会在1400或3000行左右被截断。但是,当我输入时:print d.toSBML()
并将此字符串打印到控制台,字符串不会被截断,我可以看到已解析字符串的结尾。
这可能是什么问题?
编辑:为了进一步剖析问题,我已经用outfile2.close()关闭了代码,并尝试在我的脚本中打印s并打印到控制台。这会返回截断的s
和d
字符串。但是,当我单独在解释器中键入确切的命令时,两者都正确打印。任何人都知道这种差异会发生什么?
答案 0 :(得分:0)
试试这个:
from mod2sbml import Parser
p = Parser()
with open('sbmlconvert.xml', 'w') as of:
s = open('sbmltest3.mod', 'r').read()
d = p.parse(s)
of.write(d.toSBML())