Python: 写入文本文件时,文件不包含完整字符串且随机截断?

0 投票
1 回答
695 浏览
提问于 2025-04-17 10:24

我正在用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

试试这个:

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

撰写回答