Я хотел бы запустить программу python, которая взаимодействует с терминалом для запуска другой программы и ждет ее завершения до перехода. Я пробовал:Запуск программ терминалов из python
os.system('intersectBed -a Mutations.bed -b Promoters.bed -wb >Mutations.in.Promoters.bed')
subprocess.call('intersectBed -a Mutations.bed -b Promoters.bed -wb >Mutations.in.Promoters.bed', shell=True)
Не бегайте, как я бы хотел их. Есть ли способ сделать это?
intersectBed - это программа, которую я хочу запустить. Если я использую
with open('Mutations.in.Promoters.bed','w') as f:
subprocess.call(['intersectBed','-a','Mutations.bed','-b','Promoters.bed', '-wb'], stdout=f)
Ошибка при создании файла или каталога. Но если я поставлю эту команду в терминал, она отлично работает. Пересекается в папке/bin. Это имеет значение?
EDIT *
with open('Mutations.in.Promoters.bed','w') as f:
subprocess.call(['/usr/local/bin/intersectBed','-a','Mutations.bed','-b','Promoters.bed', '-wb'], stdout=f)
ЭТО РАБОТАЛ
Что происходит, когда вы запускаете эти команды? Какие сообщения об ошибках вы получаете? – pseudocubic
Я не получаю сообщения об ошибках. Он работает. Он просто создает пустой файл с именем Mutations.in.Promoters.bed. Этот созданный файл должен составлять около 2 ГБ, а не 0 КБ. – user3266890
Указывает полный путь '' intersectBed'' помощи? –