Выполнить скрипт / bin из другого скрипта python

#python

#python

Вопрос:

У меня есть скрипт в каталоге bin моего проекта, и я хочу выполнить его из cron. Оба скрипта написаны на python.

Целевой файл :

 App_directory/bin/script_name
  

Хотите выполнить script_name скрипт с некоторыми параметрами из App_directory/cron/script_name1.py

Как мне этого добиться?

Ответ №1:

Попробуйте:

 import os
os.system('/path/to/App_directory/bin/script_name')
  

Или если script_name не является исполняемым и / или не имеет шабанга ( #!/usr/bin/env python ):

 import os
os.system('python /path/to/App_directory/bin/script_name')
  

Комментарии:

1. У меня есть shabang #! /usr/bin / env python в файле script_name

2. -1: Пожалуйста, используйте subprocess . Смотрите это: docs.python.org/library/subprocess.html#replacing-os-system .

Ответ №2:

Модуль подпроцесса намного лучше, чем использование os.system. Просто сделайте:

 import subprocess
subprocess.call(['/path/to/App_directory/bin/script_name'])
  

Подпроцесс.функция вызова возвращает код возврата (статус завершения) скрипта.

Ответ №3:

У меня это работает…

 import subprocess

process = subprocess.Popen('script_name')
print process.communicate()