Skip to content

Instantly share code, notes, and snippets.

@Behoston
Last active April 16, 2020 19:03
Show Gist options
  • Save Behoston/9197b166a1e1e6c04c05dd56d2c1ff1a to your computer and use it in GitHub Desktop.
Save Behoston/9197b166a1e1e6c04c05dd56d2c1ff1a to your computer and use it in GitHub Desktop.
Fifo wrapper class
import os
import tempfile
class Fifo:
def __init__(self, name=None, delete=True):
self.delete = delete
self.name = name if name else tempfile.mktemp()
os.mkfifo(self.name)
self._file = None
def __iter__(self):
with open(self.name) as f:
for line in f:
yield line
if self.delete:
os.remove(self.name)
@Behoston
Copy link
Author

Example:

import sh


output_file = io_utils.Fifo()
sh.hmmsearch('--domtblout', output_file.name, profiles_file, validation_data, _bg=True)
for line in output_file:
    print(line.strip())

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment