#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).
Однако в этих случаях гораздо лучше просто импортировать этот файл в качестве модуля в ваш проект.