感谢您查看我的问题。 我有一个python脚本正在当前目录中写入新的csv文件。我使用pyinstaller使它成为python.exe。我正在做的是,单击按钮就使用VBA表格excel运行此exe文件。问题是使用VBA运行exe后,我的csv保存在默认文档文件夹中,而不是python.exe所在的文件夹中。但是,如果我不使用VBA直接运行python.exe,则它将csv保存在当前目录中。因此,使用VBA运行python.exe后,如何将csv保存在当前目录中?
这是创建新的csv文件的python代码:
csvfile = open("Mycsv" + '.csv', 'w')
cr = csv.writer(csvfile, dialect='excel')
我也尝试使用:csvfile = open(os.getcwd() + "\Mycsv" + '.csv', 'w')
,但是没有用。
这是我的VBA代码:
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
答案 0 :(得分:0)
在保存文件之前,您可以使用os.chdir(some_path_to_directory)
设置当前工作目录,然后保存在该目录中。
答案 1 :(得分:0)
尝试指定csv文件的路径:
import os.path
save_path = 'C:/example/'
csvName = os.path.join(save_path, "Mycsv"+".csv")
csvfile = open(csvName, "w")