Вызов команды bash через python - PullRequest
0 голосов
/ 25 января 2019

У меня есть команда в bash:

fslstats /Users/Downloads/ALLSITES/3dROIMaker/network3*_GM.nii.gz -l 1.5 -u 2.5 -V | cut -d ' ' -f 1

выход: 755

Если я сейчас в Python, пытаюсь запустить ту же команду:

 for qq in range (0, 5, 1): 
      lo = glob.glob(path2 + "IM" + path1 + "*_GM.nii.gz")  
      lo = ' '.join(lo)
      lower = qq - 0.5
      upper = qq + 0.5
      subprocess.check_output(['fslstats {} -l lower -u upper -V | cut -d ' ' -f 1'.format(lo)], shell=True)

Я получаю эту ошибку: возвращено ненулевое состояние выхода 1)

Почему это?

1 Ответ

0 голосов
/ 25 января 2019

Замените одинарные кавычки вокруг разделителя на двойные кавычки: 'fslstats {} -l lower -u upper -V | cut -d " " -f 1' Таким образом, вы не завершаете строку до завершения команды

...