You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过.bat运行Python主脚本时,解决exec调用子脚本找不到文件的问题

解决Python脚本调用同目录文件找不到的问题

这个问题的核心是当前工作目录不匹配:当你双击bat文件运行时,Python的默认工作目录并不是HelloWorld.py所在的Desktop\Test文件夹,而是bat文件的启动目录(通常是你的用户主目录),所以open("GoodMorning.py")会去错误的目录找文件,自然报找不到的错误。

你有两种靠谱的解决方式,选哪种都可以:

方法1:修改HelloWorld.py(推荐,更灵活)

让Python脚本自己获取自身所在的目录,然后用绝对路径去打开GoodMorning.py,这样不管你从哪个目录运行脚本,都能找到目标文件。修改后的代码如下:

import os

# 获取当前脚本HelloWorld.py所在的绝对目录
script_directory = os.path.dirname(os.path.abspath(__file__))
# 拼接同目录下GoodMorning.py的完整路径
target_script_path = os.path.join(script_directory, "GoodMorning.py")

exec(open(target_script_path).read())

方法2:修改.bat文件

先切换到HelloWorld.py所在的目录,再运行Python脚本,这样Python的工作目录就和脚本目录一致了,直接用相对路径就能找到文件。修改后的bat内容:

cd /d "C:\Users\myself\Desktop\Test"
"C:\Users\myself\AppData\Local\Programs\Python\Python38-32\python.exe" "HelloWorld.py"
pause

这里的cd /d是为了确保即使bat文件不在同一个磁盘分区,也能顺利切换目录。

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

火山引擎 最新活动