Форум сайта python.su
Всем привет! Есть такая проблема. Мне необходимо запустить из скрипта на Python, сценарий bash. Имею вот такой код питон-скрипта:
#!/usr/bin/env python # -*- coding: utf-8 -*- import os def main(): p = [] p = os.popen("./test.sh 1") for line in p.readlines(): print line return 0 if __name__ == '__main__': main()
#!/bin/bash par=$1 for i in `seq $1 5`; do echo $i done
p = os.popen("./test.sh 1")
Отредактировано mark24 (Июнь 4, 2013 13:09:18)
Офлайн
Нужно юзать subprocess.Popen. Переделал под него, вот так:
#!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess def main(): p = subprocess.Popen("./test.sh 1", shell=True, stdout=subprocess.PIPE) out = p.stdout.read() print out result = out.split() print result return 0 if __name__ == '__main__': main()
File "DontStop.py", line 9 out = p.stdout.read() ^ IndentationError: unindent does not match any outer indentation level ------------------ (program exited with code: 1) Press return to continue
Отредактировано mark24 (Июнь 4, 2013 17:56:53)
Офлайн
IndentationError - отступы поправь, перед p = subprocess.Popen("./tes… лишний
Офлайн