【发布时间】:2018-01-17 08:26:44
【问题描述】:
我想用 os.system() 运行一些命令。 我已经准备好字符串“命令”(包括一些破折号、斜线)并尝试这样做:
print(command)
os.system(command)
我的输出:
"C:\Program Files (x86)\SimInTech\bin\mmain.exe" "Aux Systems.prt" /saveas "Aux Systems.xprt" /exit
"C:\Program" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
("C:\Program" 不是内部或外部命令、可执行程序或包文件。)
如果我在命令行中复制+粘贴此(打印(命令)的输出):
"C:\Program Files (x86)\SimInTech\bin\mmain.exe" "Aux Systems.prt" /saveas "Aux Systems.xprt" /exit
它工作正常。 那么,到底是什么问题以及如何避免呢?
我如何准备“命令”字符串的一些细节:
import sys
import os
import codecs
simintech = '"C:\\Program Files (x86)\\SimInTech\\bin\\mmain.exe"'
argfile = sys.argv[1:len(sys.argv)]
file = ' '.join(argfile)
file = file.strip()
filepath, filename = os.path.split(file)
if filepath !='':
filepath = filepath+"\\"
oldname = filename
newname = filename.replace('.prt','.xprt')
command = simintech + ' "' + filepath +oldname+'" /saveas "'+filepath+newname+'" /exit'
说明: 我以文件名作为参数运行我的脚本。 文件名可以包含空格,所以我收集所有参数并使用 ' '.join(argfile) 将其放入一个字符串中 之后,我将文件路径和文件名分开(如果文件名已满 - 使用绝对路径)。 最后,我用程序的路径、破折号、文件的全名、选项 \saveas、再次带有路径但带有其他文件扩展名的全名、破折号和选项 \exit 来形成我的命令。
【问题讨论】:
-
请提出一个正确的问题。指定您的问题以及除结果之外的问题。
-
顺便说一句
os.system老了,不应该用,搜索Popen