首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用VBA从excel运行Python脚本后自动切换python目录

使用VBA从excel运行Python脚本后自动切换python目录
EN

Stack Overflow用户
提问于 2018-07-04 20:30:41
回答 2查看 126关注 0票数 1

感谢您关注我的问题。我有一个python脚本,它正在我的当前目录中写入一个新的csv文件。我已经用pyinstaller把它做成了python.exe。我正在做的是,运行这个exe文件使用VBA表格excel在一个按钮上点击。问题是运行exe后使用VBA我的csv是保存在默认的文档文件夹,而不是我的python.exe的文件夹。但是如果我不使用VBA直接运行python.exe,那么它会将csv保存在我当前的目录中。那么在使用VBA运行python.exe之后,如何将csv保存到当前目录中呢?

这是我创建新csv文件的python代码:

代码语言:javascript
复制
csvfile = open("Mycsv" + '.csv', 'w')
cr = csv.writer(csvfile, dialect='excel')

我也尝试过使用:csvfile = open(os.getcwd() + "\Mycsv" + '.csv', 'w'),但不起作用。

下面是我的VBA代码:

代码语言:javascript
复制
    Dim wsh As Object
    Set wsh = VBA.CreateObject("WScript.Shell")
    Dim waitOnReturn As Boolean: waitOnReturn = True
    Dim windowStyle As Integer: windowStyle = 1
    Dim errorCode As Integer
    wsh.Run Chr(34) & ThisWorkbook.path & "\python.exe" & Chr(34), windowStyle, waitOnReturn
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-04 20:50:22

在保存文件之前,可以使用os.chdir(some_path_to_directory)设置当前工作目录,然后保存到此目录中。

票数 0
EN

Stack Overflow用户

发布于 2018-07-04 20:58:04

尝试指定csv文件的路径:

代码语言:javascript
复制
import os.path
save_path = 'C:/example/'
csvName = os.path.join(save_path, "Mycsv"+".csv") 
csvfile = open(csvName, "w")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51173791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档