2015-09-01 2 views
0

У меня очень простой скрипт VBA, в котором будет запущен скрипт Python с указанными аргументами (которые представляют собой пути к папкам, содержащие пробелы).Передача нескольких аргументов в VBA для запуска скрипта Python

код ниже

Dim path As String 
path = Left(pdocinfo.path, InStrRev(pdocinfo.path, "\")) ' e.g C:\Temp\City Addresses 

Dim pyLocation As String 
pyLocation = "C:\Temp\filePath.py" 

Dim strReports As String 
strReports = path & "Reports\" 

Dim strImages As String 
strImages = path & "Images\" 
Dim shellvar As Long 
shellvar = shell("C:\Python26\ArcGIS10.0\python.exe " & pyLocation & " " & path & " " & strImages & " " & strReports , vbNormalFocus) 

Однако когда сценарий Python запускается, то пути к файлам (strImages, strReports и path) не получают разобраны правильно, потому что они содержат пробелы внутри пути к папке.

Каков правильный способ для Python интерпретировать несколько аргументов, которые являются динамическими переменными, которые также содержат пробелы?

Edit: Я попытался следующие, следуя от комментариев ниже

shellvar = Shell("C:\Python27\ArcGIS10.2\python.exe " & pyLocation & " " & """" & path & """" & " " & """" & strImages & """" & " " & """" & strReports & """", vbNormalFocus) 

результат сценария питона enter image description here

В результате я хотел бы это

Argument 0: C:\Temp\filePath.py 
Argument 1: "C:\Temp\City Addresses" 
Argument 2: "C:\Temp\City Addresses\Images" 
Argument 3: "C:\Temp\City Addresses\Reports" 
+1

Возможно, вам придется окружить двойные кавычки. & "" "" & strImages & "" "" & Есть четыре двойных кавычки для создания одной двойной кавычки. – MatthewD

ответ

1

Окружать те с двойными кавычками.

shellvar = shell("C:\Python26\ArcGIS10.0\python.exe " & pyLocation & " " & """" & path & """" & " " & """" & strImages & """" & " " & """" & strReports & """", vbNormalFocus) 
+0

Я пробовал это, но параметры, которые используются в python, неверны. Я обновил вопросы, чтобы показать ваш пример, а также скриншот результата. – MapMan

Смежные вопросы