os.system () не ожидает завершения своего процесса перед возвратом.
Если вы видите, что он не ждет, запускаемый вами процесс, вероятно, отсоединяется для запускафон, в этом случае пример подпроцесса. Открытие + ожидание, которое дал Дор, не поможет.
Примечание: если вам нужен только подпроцесс. Открытие + ожидание, используйте subprocess.call:
import subprocess
subprocess.call(('someprog.exe', str(i)))
Это на самом деле ничем не отличается от os.system (), кроме явной передачи команды и аргументов вместо передачи ее в виде одной строки.