|
Python subprocess
- import subprocess
- subprocess.call(['python', r'\info.py']) # r'' 表示原始字符串,防止\i 等的转义意味
- subprocess.Popen(['python', r'\info2.py']) # 这里在同一个powershell里面用新进程开启info2.py
复制代码
在 Windows 系统上,你可以使用 subprocess 模块来启动一个新的 PowerShell 进程,并在该 PowerShell 进程中运行一个 .py 程序。你可以通过指定 shell=True 和使用 creationflags=subprocess.CREATE_NEW_CONSOLE 来确保 PowerShell 在一个新的控制台窗口中打开。不过,请注意,shell=True 可能会带来安全风险,特别是当你从不受信任的源构建命令时。
以下是一个示例代码,展示了如何使用 subprocess 模块在新的 PowerShell 窗口中运行一个 .py 程序:
- import subprocess
- import sys
- # 要运行的 Python 脚本的路径
- script_path = 'C:\\path\\to\\your\\script.py'
- # 构建 PowerShell 命令,使用 -NoProfile 来避免加载 PowerShell 配置文件,加快启动速度
- # -ExecutionPolicy Bypass 用于绕过执行策略(在生产环境中请谨慎使用)
- # & 表示调用操作符,用于执行后面的字符串作为命令
- # 注意:这里我们假设 Python 已经添加到系统的 PATH 环境变量中
- powershell_command = f'powershell -NoProfile -ExecutionPolicy Bypass -Command "& python {script_path}"'
- # 使用 subprocess.Popen 启动新的 PowerShell 窗口并运行脚本
- # creationflags=subprocess.CREATE_NEW_CONSOLE 确保在新的控制台窗口中打开
- process = subprocess.Popen(powershell_command, shell=True, creationflags=subprocess.CREATE_NEW_CONSOLE)
- # 注意:这里我们不需要等待进程完成,因为我们在新的窗口中运行它
- # 如果你需要等待进程完成,可以调用 process.wait()
- # 但是,由于我们在新的窗口中运行它,通常我们不会在这里等待它
复制代码
|
|