Я хотел бы открыть powershell из моего скрипта Python, а затем запустить другой скрипт Python в этом недавно созданном powershell.
import subprocess
subprocess.call("start C:\\Windows\\System32\\WindowsPowerShell\\v1.0", shell=True)
# Here, I would like to write this in the new opened powershell : python ./hello_world.py (then press ENTER)
input("end")
Любая идея, как я могу это сделать? Спасибо и хорошего дня !
Я пробовал subprocess.Popen + общаться, но в моем новом powershell ничего не было написано






вы можете просто использовать os.system()
import os
os.system("start powershell python path_to_file")
# some code
если вы используете threading или multiprocessing, вы можете добиться этого
попробуй os.startfile("powershell.exe")
Это отлично работает, чтобы открыть новую оболочку, но как тогда написать «python ./hello_world.py» в моей новой оболочке, пожалуйста?
хорошо, я нашел способ os.system("start powershell python path_to_file")
Другая альтернатива:
import subprocess
subprocess.run(["powershell", "-Command", "python hello-world.py"], capture_output=True, cwd = "C:\\your\\path")
Выведет:
CompletedProcess(args=['powershell', '-Command', 'python hello-world.py'], returncode=0, stdout=b'hello world\r\n', stderr=b'')
Где stdout=b'hello world\r\n' — ваш результат.
Я думаю, что подпроцесс не предназначен для взаимодействия с активным окном. но для отправки потоковых данных в конвейер.
попробуйте использовать pyautogui для взаимодействия с окном Powershell.
Не совсем то, что мне нужно по трем причинам: 1/Я хотел бы открыть в новом окне, чтобы иметь возможность видеть журналы для каждого файла Python, который я запускаю 2/Я хотел бы использовать powershell (синий фон) 3/Я хотел бы новый powershell не зависит от родителя (это означает, что я могу закрыть родителя и по-прежнему иметь дочерние powershells)