我使用Python解析xls文件,然后将该信息转换为SBML(XML的一个版本)。Python:将输出写入文本文件,但文本文件不包含整个字符串并随机截断?
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
字符串。但是,当我将确切的命令分别输入到解释器中时,两者都可以正确打印。任何人都知道这种差异是怎么回事?
你忘了关闭文件。虽然这可能不是原因,但你应该真的这么做。此外,您可以使用'outfile2.write(d.toSBML())'而不是使用'print'。 – ThiefMaster 2012-01-17 02:48:25
为什么你认为's'被截断了,特别是如果'd'似乎包含其全部内容? – 2012-01-17 03:04:11
另外,如果您正在处理文件内的文本信息,则应使用“rt”和“wt”作为文件模式。 (如果文件不是文本,则为“rb”和“wb”) – jsbueno 2012-01-17 03:07:19