0
我想運行一個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)
它給出了一個錯誤,即沒有這樣的文件或目錄存在。但是,如果我把這個命令放入終端,它就能完美地工作。 intersectBed位於/ bin文件夾中。這有什麼區別嗎?
編輯*
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的空白文件。這個創建的文件應該是大約2GB,而不是0KB。 – user3266890
是否指定''intersectBed''的完整路徑? –