Python:将输出写入文本文件,但文本文件不包含整个字符串并随机截断?

时间:2012-01-17 02:45:21

标签: python xml text

我正在使用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并打印到控制台。这会返回截断的sd字符串。但是,当我单独在解释器中键入确切的命令时,两者都正确打印。任何人都知道这种差异会发生什么?

1 个答案:

答案 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())