Запуск сценария Python в оболочке Windows несколько раз - PullRequest
0 голосов
/ 12 мая 2019

Я бы хотел выполнить следующую команду оболочки 10 раз

./file.py 1111x

с значением 'x' в диапазоне от 0 до 9

, то есть для каждого .file.py по-разному.файл.Мне нужно, чтобы каждый экземпляр работал в своей собственной оболочке.Я уже пытался создать командный файл и скрипт Python, который вызывает оболочку Windows, но оба безуспешно.

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

То, что вы ищете, это работа PowerShell. Возможно, вам придется немного изменить это, чтобы удовлетворить ваши конкретные требования, но это должно делать то, что вам нужно.

[ScriptBlock]$PyBlock = {
   param (
     [int]$x,
     [string]$pyfile
   )
   try {
     [int]$Port = (11110 + $x)
     python $pyfile $Port
   }
   catch {
     Write-Error $_
   }
}

try {
  0..9 | ForEach-Object {
    Start-Job -Name "PyJob $_" -ScriptBlock $PyBlock -ArgumentList @($_, 'path/to/file.py')
  }

  Get-Job | Wait-Job -Timeout <int> 
     #If you do not specify a timeout then it will wait indefinitely. 
     #If you use -Timeout then make sure it's long enough to accommodate the runtime of your script. 

  Get-Job | Receive-Job
}
catch {
  throw $_
}
0 голосов
/ 12 мая 2019

Как насчет этого ...

import os
import subprocess 
for x in range(0,10):
    command = './file.py 1111'  + str(x)
    os.system(command)
    #or
    subprocess.call('cmd ' + command, shell=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...