You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在PowerShell中执行多条可保留工作目录状态的命令

问题说明

你当前的代码存在两个问题:

  1. 语法错误:传入os.system()的命令内容需要用引号包裹为字符串,os.system(cd new_folder)的写法不符合Python语法要求。
  2. 执行机制问题:每次调用os.system()都会启动一个独立的子shell进程,子shell内的工作目录变更仅在该子进程生命周期内有效,执行完成后子进程退出,不会影响父进程(也就是你的Python脚本本身)的工作目录。因此连续调用两次os.system()相当于在两个完全独立的shell环境中执行命令,第一次的目录切换对第二次的命令完全不生效。
解决方案

下面提供三种常用的解决方式,你可以根据场景选择:

  • 方案1:使用os.chdir()直接修改Python进程的全局工作目录
    该方式会改变当前Python脚本运行时的全局工作目录,后续所有文件操作、子进程命令都会默认在新的工作目录下执行,适合需要长期切换工作目录的场景。
import os

# 直接修改Python进程的工作目录
os.chdir("new_folder")
# 后续命令默认在new_folder目录下执行,Windows系统可将mkdir替换为md
os.system("mkdir good_folder")
  • 方案2:多个命令放在同一次os.system()调用中执行
    如果不想修改Python的全局工作目录,可以把关联的命令用&&拼接后一次性传给os.system,保证所有命令在同一个子shell中执行,目录切换状态会保留。
import os

# 同一子shell内依次执行切换目录、新建文件夹操作,Windows系统可将mkdir替换为md
os.system("cd new_folder && mkdir good_folder")
  • 方案3:使用subprocess模块指定命令运行的工作目录(官方推荐)
    Python官方更推荐使用subprocess模块执行外部命令,你可以直接通过cwd参数指定命令执行的工作目录,不需要手动切换目录,也不会影响全局工作目录,灵活性更高。
import subprocess

# 直接指定mkdir命令在new_folder目录下执行,Windows系统可将mkdir替换为md
subprocess.run("mkdir good_folder", cwd="new_folder", shell=True)

内容的提问来源于stack exchange,提问作者Sihwan Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:57:02