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

如何解决pywinauto启动exe时相对路径依赖文件找不到的问题

解决pywinauto启动exe时工作目录不匹配的问题

核心原因

你的exe程序使用相对路径./reqFile.txt读取文件时,会默认使用当前工作目录(即运行pywinauto代码的D://目录),而非exe自身所在的C://App目录,因此找不到依赖文件。

解决方案

方法1:启动exe时指定工作目录(推荐)

pywinauto的start()方法支持cwd参数,直接将其设置为exe所在的目录,exe启动后就会以自身目录作为工作目录,自然能找到同目录的reqFile.txt:

from pywinauto import Application

exe_path = 'C://App//xxx.exe'
exe_dir = 'C://App'
Application().start(exe_path, cwd=exe_dir)

方法2:临时切换Python工作目录(备选)

如果无法使用cwd参数,可以先切换Python的工作目录到exe所在路径,启动exe后再切回原目录:

import os
from pywinauto import Application

exe_path = 'C://App//xxx.exe'
exe_dir = 'C://App'

# 保存原工作目录
original_dir = os.getcwd()
try:
    # 切换到exe所在目录
    os.chdir(exe_dir)
    # 启动exe
    Application().start(exe_path)
finally:
    # 切回原工作目录,避免影响后续代码
    os.chdir(original_dir)

方法3:修改exe程序(如果有权限)

如果可以修改exe的源代码,让程序读取自身目录下的文件,彻底摆脱对当前工作目录的依赖。以Python编写的exe为例:

import os
import sys

# 获取exe自身所在的绝对目录
exe_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
# 拼接依赖文件的绝对路径
file_path = os.path.join(exe_dir, 'reqFile.txt')

with open(file_path, 'r') as f:
    # 读取文件内容
    content = f.read()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:20:36