У меня есть набор кодов, которые я хочу запустить последовательно через .py-файл вместо файла .bat, как я могу это сделать? У меня есть следующий код для этого:Запуск пакетных файлов в python
#!/usr/bin/python
import sys
import os
bashCommand = "./available_itemsawk.sh"
os.system(bashCommand)
python_command="python run_process.py"
os.system(python_command)
У меня есть два вопроса: 1) У меня есть сценарий оболочки (available_itemsawk.sh) следующим образом:
#!/bin/bash
join -1 4 -2 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,2.2 <(sort -k4 abc.txt) <(sort -k1 cdf.txt) > join.txt
awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}' join.txt > temp
mv temp join.txt
Однако, когда я называю и беги это через скрипт Python, я получаю следующие ошибки:
sort: write failed: standard output: Broken pipe
sort: write error
2) Как запускать скрипты в серии через процесс os.system?
abc.txt
chr7 99999667 100000138 ENSG00000078487:I17.1 -
chr7 100000139 100000199 ENSG00000078487:E17.1 ENSE00001180416 -
chr9 100000046 100000367 ENSG00000203279:E2.1 ENSE00001678182 -
chr3 99998605 100000561 ENSG00000036054:I5.1 +
chr3 100000562 100000586 ENSG00000036054:E6.1 ENSE00001916783 +
chr3 100000586 100000691 ENSG00000036054:E6.2 ENSE00003639820|ENSE00001916783 +
chr9 99983518 100000704 ENSG00000159712:I1.1 -
chr9 100000368 100000704 ENSG00000203279:I1.1 -
chr9 100000731 100000765 ENSG00000254876:E1.1 ENSE00002183448 +
chr9 100000765 100000779 ENSG00000197816:E1.1 ENSE00003621967 +
cdf.txt
ENSG00000078487:I17.1
ENSG00000254876:E1.1
ENSG00000036054:E6.1
ENSG00000036054:I5.1
ENSG00000197816:E1.1
Похоже, ошибка в самом сценарии оболочки, независимо от питона. Можете ли вы подтвердить, что при непосредственном выполнении скрипта оболочки он работает? –
@quantum_random: он работает нормально, а также я использую терминал mac в качестве платформы для запуска кодов. – AishwaryaKulkarni
Можете ли вы привести образец содержимого в abc.txt и cdf.txt? Я могу попытаться воспроизвести это на моем конце. Я использую Ubuntu, но это не имеет значения. –