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

如何通过setup.cmd仅在src目录创建files目录且正常运行Python脚本?

解决方法

问题根源在于:当你在build目录下直接运行python "..\src\main.py"时,Python的工作目录还是build,如果main.py里有用相对路径创建files目录的代码(比如os.mkdir("files")),就会在当前工作目录(也就是build)下生成目录,加上你手动执行的mkdir "..\src\files",就导致两个目录都被创建了。

下面是几种可行的解决方式:

方式1:先切换工作目录到src再执行所有命令

修改setup.cmd内容为:

@echo off
rem 切换到src目录(%~dp0表示当前cmd文件所在的build目录的绝对路径)
cd /d "%~dp0..\src"
rem 在src目录下创建files
mkdir "files"
rem 运行main.py,此时工作目录是src
python "main.py"

这种方式让所有操作都基于src目录执行,不管是手动创建目录还是脚本里的路径,都会指向src\files。

方式2:修改main.py中的路径为绝对路径

如果main.py里有创建files目录的逻辑,把相对路径改成基于脚本自身位置的绝对路径,这样不管从哪个目录运行脚本,都会在src下创建目录:

import os

# 获取main.py所在的目录(也就是src目录)
script_path = os.path.abspath(__file__)
src_dir = os.path.dirname(script_path)
# 拼接files目录的绝对路径
files_dir = os.path.join(src_dir, "files")

# 检查并创建目录
if not os.path.exists(files_dir):
    os.makedirs(files_dir)

修改后,即使从build目录运行python "..\src\main.py",脚本也会在src目录下创建files,不会影响build目录。

方式3:临时切换工作目录执行Python脚本

如果不想修改main.py,可以在setup.cmd中用pushd和popd临时切换到src目录执行脚本,执行完后回到原目录:

@echo off
rem 先在src目录创建files
mkdir "..\src\files"
rem 临时切换到src目录
pushd "%~dp0..\src"
rem 运行脚本
python "main.py"
rem 回到原来的build目录
popd

内容的提问来源于stack exchange,提问作者Rory Poulter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:35:00