簡體   English   中英

使用不同的輸入值多次運行相同的 python 文件

[英]Run the same python file multiple times with different input values

我有一個進程將接受輸入,然后在后台運行並評估信息(假設進程永遠不會結束),這意味着文件基本上“停止”我無法對任何變量進行主題化。 我的流程有“階段”,這些“階段”需要相同的評估但不同的輸入,因為我無法對變量進行主題化,所以我只能制作另一個 python 文件,然后更改變量,然后運行它。 我的進程必須按文件運行,不能定義為 function 或循環。

測試1.py

from .test import testing #-- my manager to calculate the variable data returns a list

value = 473
drones = testing(473) #- returns something like [[0,1,2,3], [4,5,6,7]]
while True: #- The loop in a nutshell, but cannot be defined as a loop or function
  process(drones[0]) #- process is the process in a nutshell
  • 注意:第 1 行from.test import testing是我為我的流程將輸入划分為數據的管理器。

  • 注意:第 4 行drones = testing(473)返回列表列表; 列表中的每個值都是一個進程的必要數據。

  • 注意:第 5 行while True:簡而言之,這是我的循環,這不是它的實際處理方式*

測試2.py

from .test import testing 

value = 473
drones = testing(473) 
while True: 
  process(drones[1]) 

這與第 6 行process(drones[1])的 test1.py 不同。 我用於我的流程的數據在 test1.py ( process(drones[0]) )中有所不同

但是,如果我有數百甚至數千呢? 我不會為此制作單獨的文件。

我對所有答案持開放態度。 這些答案不必純粹是 python (bash 等)。

你可以使用multiprocessing.Pool

from multiprocessing import Pool

from .test import testing

value = 473
drones = testing(value)

def proc(lst):
    # do something with lst asynchonously

if __name__ == "__main__":
    pool = Pool(2) # or however many times needed
    pool.map(proc, drones, chunksize=1) # runs proc(drones[0]), proc(drones[1]), ..., each in their own process

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM