将模块的输出从打印模式转换为写入模式

时间:2014-04-08 16:45:08

标签: python output

我一直在尝试使用twobitreader包(http://pythonhosted.org//twobitreader/)来提取DNA序列信息,但是我遇到了一个问题。每当我使用twobitreader.twobit_reader()模块时,我只能获得打印输出。我想要做的是将输出写入一个新文件。

这是http://pythonhosted.org//twobitreader/中有关此模块的信息: twobit_reader接受一个twobit_file(类TwoBitFile)和一个“input_stream”,它可以是任何可迭代的(包括类文件对象)写入输出(FASTA格式)使用write(print if write = None)将错误/警告记录到stderr

可能,我对python编程的有限知识阻碍了我完成这项任务。

例如,这里是我写的一些代码:

    def get_a(n):
      """get sequences from genome"""
      genome = twobitreader.TwoBitFile('hg19.2bit')
      bedfile = open(n+'.bed', 'r')
      o_f = open(n+'_FASTA.txt', 'w')
      twobitreader.twobit_reader(genome, bedfile)
      bedfile.close()
      o_f.close()

这最终会打印我的序列。

如果我尝试将twobitreader行更改为:twobitreader.twobit_reader(genome, bedfile, o_f)以尝试将数据写入文件o_f,则会收到错误'file' object is not callable

1 个答案:

答案 0 :(得分:0)

OP确认这有效:

twobitreader.twobit_reader(genome, bedfile, o_f.write)