Excel宏调用D盘Python脚本,os.getcwd()返回C盘路径问题求助
问题解决:Excel宏调用Python脚本时os.getcwd()返回C盘而非D盘
问题根源
Excel宏执行时的默认工作目录并非Python脚本所在的D盘,而是Excel的默认启动路径(通常是C:\Users\<你的用户名>\Documents或系统默认目录)。Python脚本会继承这个工作目录,因此os.getcwd()返回的是Excel的工作目录,而非脚本所在的D盘路径。
解决方案
方案1:在Python脚本内部切换工作目录(推荐)
直接在脚本中获取自身所在路径并切换,无论调用时的工作目录是什么,都能确保os.getcwd()返回脚本所在的D盘路径:
import os # 获取当前脚本的绝对路径所在目录 script_directory = os.path.dirname(os.path.abspath(__file__)) # 切换工作目录到脚本所在路径 os.chdir(script_directory) # 此时执行os.getcwd()会返回D盘的脚本路径 print(os.getcwd())
方案2:在Excel VBA宏中先切换工作目录再调用脚本
修改VBA代码,先切换到Python脚本所在的D盘目录,再执行脚本:
Sub RunPythonScript() Dim scriptFullPath As String scriptFullPath = "D:\your_python_script.py" ' 替换为你的脚本完整路径 ' 切换到脚本所在的D盘目录 ChDir "D:\" ' 调用Python脚本,注意路径包含空格时要加双引号 Shell "python """ & scriptFullPath & """", vbNormalFocus End Sub
内容的提问来源于stack exchange,提问作者almost there
相关产品推荐
相关产品推荐

