Я использую 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)
находится там далеко, чтобы дать региону имя, терминал может найти его?
Посмотрите на использование 'StringIO' –
@SlaterTyranus: Противоположная проблема. –
Вы посмотрели на использование трубы? – cmd