使用python创建的参数执行vbs文件

里厄

我想一次将数十个Excel工作表转换为csv文件。我有一个工作的.vbs文件进行转换,并且我想借助python代码在不同的工作表上执行此.vbs文件。我有以下2个版本的python代码:

版本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)

版本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])

没关系,在我尝试的情况下,会收到相同的错误消息:

 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

错误消息的最后一行大约表示它不是有效的Win32程序。

到目前为止我尝试过的是:

  • 如果我使用正确的参数(工作表,.xls文件的名称和.csv文件的名称)从命令提示符运行.vbs文件,则它可以正常工作。
  • 如果我打印python生成的命令并将其复制到命令提示符,则它们可以正常工作。
  • 我尝试了不同路径中'\'和'\'的每种组合,但没有任何改善。
  • 我试图用特定的参数替换sys.argv [i]参数来执行程序,然后从命令提示符处执行.py文件。我收到相同的错误消息。

我希望你们中的一些可以帮助我。非常感谢!

霍克·埃克哈德

要详细说明Ansgar的补救措施,请执行以下操作:

从命令行“ works”启动.vbs,因为外壳程序将扩展名.vbs与应用程序关联(例如cscript / wscript;请参阅ftype,assoc,cscript // E,cescript // S)。

subprocess.call()不会打开外壳程序,因此可以指定应用程序(c|wscript.exe)或自己启动外壳程序:

import subprocess

#subprocess.call("notepad") # works

#subprocess.call("dir") # [Error 2] The system cannot find the file specified
                        # no shell, no intrinsics

#subprocess.call("19112944.vbs") # [Error 193] %1 is not a valid Win32 application
                                 # no shell, can't associate .vbs with c|wscript.exe

subprocess.call("cscript 19112944.vbs") # works

subprocess.call("cmd /c 19112944.vbs") # works
                                       # have shell, can associate .vbs with c|wscript.exe

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用python创建的参数执行vbs文件

来自分类Dev

使用参数执行批处理文件

来自分类Dev

使用PyScripter执行带有参数的python文件

来自分类Dev

从Python程序使用-Xms和-Xmx参数执行jar文件

来自分类Dev

使用VBS创建文件夹和子文件夹

来自分类Dev

Python:Pyodbc使用参数执行存储过程

来自分类Dev

Python:使用参数执行存储过程

来自分类Dev

如何使用“冻结的” Python二进制文件中的参数执行python脚本?

来自分类Dev

使用Ajax执行Python文件

来自分类Dev

运行使用Python接受参数的可执行文件

来自分类Dev

无法使用Java Process使用包含#(哈希)字符的参数执行python可执行文件

来自分类Dev

使用.bat文件和任务计划程序执行.vbs文件

来自分类Dev

使用.bat文件和任务计划程序执行.vbs文件

来自分类Dev

使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

来自分类Dev

使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

来自分类Dev

使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

来自分类Dev

使用参数执行批处理文件

来自分类Dev

使用PyScripter执行带有参数的python文件

来自分类Dev

以文件路径为参数执行python脚本

来自分类Dev

使用python创建python文件

来自分类Dev

在Python中使用参数执行bash命令

来自分类Dev

使用Ajax执行Python文件

来自分类Dev

使用git中的参数文件执行shell

来自分类Dev

如何使用import在带有参数的Python中执行文件?

来自分类Dev

使用变量执行python文件

来自分类Dev

用 Python 创建可执行文件,它使用 QT 和不同版本的 Python

来自分类Dev

VBS变量使用执行

来自分类Dev

使用 VBS 打印 PDF 文件

来自分类Dev

Python函数:使用批处理文件将.txt文件中的参数传递给python函数并执行函数

Related 相关文章

  1. 1

    用python创建的参数执行vbs文件

  2. 2

    使用参数执行批处理文件

  3. 3

    使用PyScripter执行带有参数的python文件

  4. 4

    从Python程序使用-Xms和-Xmx参数执行jar文件

  5. 5

    使用VBS创建文件夹和子文件夹

  6. 6

    Python:Pyodbc使用参数执行存储过程

  7. 7

    Python:使用参数执行存储过程

  8. 8

    如何使用“冻结的” Python二进制文件中的参数执行python脚本?

  9. 9

    使用Ajax执行Python文件

  10. 10

    运行使用Python接受参数的可执行文件

  11. 11

    无法使用Java Process使用包含#(哈希)字符的参数执行python可执行文件

  12. 12

    使用.bat文件和任务计划程序执行.vbs文件

  13. 13

    使用.bat文件和任务计划程序执行.vbs文件

  14. 14

    使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

  15. 15

    使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

  16. 16

    使用ThreadPool执行程序的结果,使用函数中的参数创建多个文件

  17. 17

    使用参数执行批处理文件

  18. 18

    使用PyScripter执行带有参数的python文件

  19. 19

    以文件路径为参数执行python脚本

  20. 20

    使用python创建python文件

  21. 21

    在Python中使用参数执行bash命令

  22. 22

    使用Ajax执行Python文件

  23. 23

    使用git中的参数文件执行shell

  24. 24

    如何使用import在带有参数的Python中执行文件?

  25. 25

    使用变量执行python文件

  26. 26

    用 Python 创建可执行文件,它使用 QT 和不同版本的 Python

  27. 27

    VBS变量使用执行

  28. 28

    使用 VBS 打印 PDF 文件

  29. 29

    Python函数:使用批处理文件将.txt文件中的参数传递给python函数并执行函数

热门标签

归档