Python: как дождаться кода возврата процесса с помощью subprocess.call

#python #subprocess

#python #подпроцесс

Вопрос:

Я использую subprocess.call для запуска моего exe-файла с аргументами таким образом:

 def run_file(self, file_path):
    subprocess.call([r'c:file.exe', self.server_ip_address, file_path])
  

Это работает нормально, но теперь я хочу дождаться своего return code .

Поэтому я пытаюсь использовать этот подход:

 def run_file(self, file_path):
    process = subprocess.call([r'c:file.exe', self.server_ip_address, file_path])
    process.wait()
    print(process.returncode)
  

И получил это error :

 process.wait() AttributeError: 'int' object has no attribute 'wait'
  

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

1. Возможный дубликат документов .

Ответ №1:

Используйте subprocess.run вместо subprocess.call . Он блокируется, поэтому нет необходимости wait .
https://docs.python.org/fr/3/library/subprocess.html

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

1. Я заменил подпроцесс. вызовите subprocess.run и удалите process.wait(), также я добавил в subprocess.run функцию check=True, и все равно это не wait