Запуск программы на Python с аргументами из другой программы

#python #list #loops #subprocess #parameter-passing

#python #Список #циклы #подпроцесс #передача параметров

Вопрос:

Я хочу вызвать программу python из текущей программы,

 def multiply(a):
    return a*5
mul = sys.argv[1]
 

Я сохранил этот файл как test.py .так что из текущего файла я вызываю его, но я хочу запустить код параллельно, как очередь многопроцессорной обработки, но он не работает.
что я пробовал до сих пор,

 import os
import sys
import numpy as np
cwd = os.getcwd()
l =  [20,5,12,24]
for i in np.arange(len(l)):
    os.system('python test.py multiply[i]')
 

Я хочу запустить основной скрипт для всех элементов списка параллельно, как многопроцессорная обработка. Как этого добиться?

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

1. Пожалуйста, повторите учебник по Python , он показывает вам, как повторно использовать код Python, который хранится в файле.

2. Нет … я хочу сделать это каким-то образом… что все может быть выполнено одновременно… например, с помощью подпроцесса .. можете ли вы мне помочь таким образом..

3. Я хочу запустить их параллельно для всего списка items..it это многое объяснит..

Ответ №1:

Если вы хотите, чтобы ваша программа работала так, используя os.system, вам необходимо изменить test.py файл немного:

 import sys

def multiply(a):
    return a*5

n = int(sys.argv[1])
print(multiply(n))
 

Этот код, написанный следующим образом, принимает второй элемент (первый — это просто имя файла) argv, который он принял, когда вы выполнили его с помощью os.system, и преобразовал его в целое число, затем выполнил вашу функцию (умножьте на 5).

Однако в этих случаях гораздо лучше просто импортировать этот файл в качестве модуля в ваш проект.