Ausführen einer VBS-Datei mit von Python erstellten Argumenten

Ich möchte Dutzende von Excel-Tabellen gleichzeitig in CSV-Dateien konvertieren. Ich habe eine funktionierende .vbs-Datei, die die Konvertierung durchführt, und ich möchte diese .vbs-Datei mit Hilfe eines Python-Codes auf den verschiedenen Blättern ausführen. Ich habe die folgenden 2 Versionen des Python-Codes:

Version 1:

import os
import sys
import subprocess

FolderName=sys.argv[1]
FileList=os.listdir(FolderName)
NewList=[]

for i in FileList:
   NewItem=i.split('.xls')
   NewXls=FolderName+"\\"+NewItem[0]+".xlsx "
   NewCsv=FolderName+"\\"+NewItem[0]+".csv"
   NewCommand="C:\\Users\\user\\XlsToCsv.vbs "+sys.argv[2]+" "+NewXls+NewCsv
   subprocess.call(NewCommand)

Version 2:

import os
import sys
import subprocess

def main(directory,extension,sheet):
 for filename in os.listdir(directory):
    if filename.endswith(extension):
        path = os.path.join(directory, filename)
        base = os.path.join(directory, filename[:len(filename)-len(extension)])
        print base
        new_xls = base + extension
        new_csv = base + '.csv'
        subprocess.call(['C:\\Users\\user\\XlsToCsv.vbs', sheet, new_xls, new_csv])

main(sys.argv[1],sys.argv[2],sys.argv[3])

Es ist egal, was ich versuche, ich bekomme die gleiche Fehlermeldung:

 Traceback (most recent call last):
   File "C:/Users/user/Desktop/Work/XlsDir.py", line 16, in <module>
     subprocess.call(NewCommand)
   File "C:\Python27\lib\subprocess.py", line 524, in call
     return Popen(*popenargs, **kwargs).wait()
   File "C:\Python27\lib\subprocess.py", line 711, in __init__
     errread, errwrite)
   File "C:\Python27\lib\subprocess.py", line 948, in _execute_child
     startupinfo)
   WindowsError: [Error 193] %1 er ikke et gyldigt Win32-program

Die letzte Zeile der Fehlermeldung bedeutet ungefähr, dass es sich nicht um ein gültiges Win32-Programm handelt.

Was ich bisher ausprobiert habe:

Wenn ich die .vbs-Datei an der Eingabeaufforderung mit den richtigen Argumenten (Blatt, Name der .xls-Datei und Name der .csv-Datei) ausführe, funktioniert sie einwandfrei.Wenn ich die von Python generierten Befehle drucke und in die Eingabeaufforderung kopiere, funktionieren sie einwandfrei.Ich habe alle Kombinationen von '\' und '\' innerhalb der verschiedenen Pfade ausprobiert und nichts wurde besser.Ich habe versucht, die Programme auszuführen, indem ich die sys.argv [i] -Argumente durch bestimmte Argumente ersetzte und dann die .py-Datei über die Eingabeaufforderung ausführte. Ich erhalte die gleiche Fehlermeldung.

Ich hoffe einige von euch können mir helfen. Danke vielmals!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage