Python: 写入文本文件时,文件不包含完整字符串且随机截断?
我正在用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
字符串。然而,当我在解释器中单独输入相同的命令时,两个都能正确打印。有人知道这之间的差异是什么吗?
1 个回答
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())