我正在使用python运行一个终端程序,名为bedtools。Bedtools将文件名作为参数。但是,由于我一次只能打开256个文件,所以我的多线程能力有限。我本来希望能够在内存中向终端发送一个文件,但是它没有名字,比如SpooledTemporaryFile()。有办法绕过这件事吗?
示例:
f=tempfile.NamedTemporaryFile(delete=True)
region=tempfile.SpooledTemporaryFile()
region.write(b'chr1\t1090917\t1136917\n')
region.seek(0)
subprocess.call(['/usr/local/bin/shuffleBed', '-incl',str(region),'-i','temp'+chromosome+'ShuffleMutations.bed','-g','hg19.genome'],stdout=f)有没有给区域取一个名字以便终端能找到它?
发布于 2014-02-20 23:35:14
使用NamedTemporaryFile创建输入文件。如果关闭它,文件描述符就不会耗尽。
f=tempfile.NamedTemporaryFile(delete=True)
region=tempfile.NamedTemporaryFile(delete=False)
region.write(b'chr1\t1090917\t1136917\n')
region.close()
subprocess.call(['/usr/local/bin/shuffleBed', '-incl',region.name,'-i','temp'+chromosome+'ShuffleMutations.bed','-g','hg19.genome'],stdout=f)https://stackoverflow.com/questions/21921951
复制相似问题