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

直接运行Python脚本正常,通过Bat调用时出现FileNotFoundError求助

解决Python脚本通过bat调用找不到XML文件夹的问题

这个问题我太熟了!本质就是运行脚本时的工作目录不一致搞的鬼,咱们一步步来解决:

问题根源

  • 直接双击.py文件运行时,Python的默认工作目录就是你脚本所在的文件夹,所以你写的\xml\(其实更规范的相对路径应该是xml/或者./xml/)能正确指向脚本旁边的xml文件夹。
  • 但通过.bat调用时,默认工作目录是你双击bat文件时的当前目录(比如桌面、文档文件夹),或者bat文件所在的目录(如果不是和脚本同目录的话),这时候\xml\会被解析成系统根目录下的xml文件夹,自然找不到!

两种可靠的解决方案

方案1:让Python脚本自己用绝对路径(推荐)

不管从哪里调用脚本,都让它自己定位到正确的xml文件夹,用os模块获取脚本的绝对路径再拼接:

import os

# 获取当前脚本所在的文件夹绝对路径
script_folder = os.path.dirname(os.path.abspath(__file__))
# 拼接xml文件夹的绝对路径
xml_folder_path = os.path.join(script_folder, "xml")

# 之后用这个路径去读取文件,比如:
for filename in os.listdir(xml_folder_path):
    if filename.endswith(".xml"):
        file_path = os.path.join(xml_folder_path, filename)
        # 处理你的XML文件

这种方法最稳妥,完全不依赖外部调用的工作目录。

方案2:修改bat文件,先切换到脚本目录再运行

如果不想改Python代码,就修改你的XML.bat,先切换到脚本所在的文件夹,再执行脚本:

@echo off
# 替换成你脚本所在的实际文件夹路径,比如:
cd /d "D:\Projects\YourXmlProject"
python your_script_name.py
pause

这里的/d参数是为了跨盘符切换目录(比如bat在C盘,脚本在D盘时也能生效),确保运行脚本时的工作目录和脚本所在目录一致。

额外注意点

检查你的目录结构是否正确,应该是这样的:

你的项目文件夹/
├─ your_script.py
└─ xml/
   ├─ xxx.xml
   └─ yyy.xml

如果xml文件夹不在脚本同级目录,记得调整os.path.join里的路径参数哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:37:58